2011-05-12 16 views
0

私はArraylistに文字列のグループを持っています。数字付きのJava文字列

の文字列をすべて削除します。文字列を含まない文字列($ 0.75)は、$ 1.5です。 2)コンソールに書き込む前に、文字列のすべての特殊文字を削除します。 は、「神は神を印刷する必要があります & QUOT;を含むを印刷する必要があります。あなたが言うとき

+1

[regex](http://download.oracle.com/javase/tutorial/essential/regex/)のにおいがします。 – JMelnik

+0

"..文字を含んでいないものすべて.."それは手がかりです! 「除外」を考えるのではなく、「含む」、「A-Z」、「a-z」を考えるのはあなたが知っている26 + 26アルファベットだけです。 –

+0

これまでに何を試みましたか? – MatthewD

答えて

0

を見つけるべきである見つける」 をquoteIncluding 『の文字、aからzまでの』私​​はあなただけを意味すると仮定しています 『』と「A Z.を通じて」あなたは、おそらくD1Eコメントで述べたように正規表現(正規表現)を使用したい。ここでReplaceAllメソッドを使用した例である

import java.util.ArrayList; 

public class Test { 
    public static void main(String[] args) { 
     ArrayList<String> list = new ArrayList<String>(5); 
     list.add("\"God"); 
     list.add("&quot;Including"); 
     list.add("'find"); 
     list.add("24No3Numbers97"); 
     list.add("w0or5*d;"); 

     for (String s : list) { 
      s = s.replaceAll("[^a-zA-Z]",""); //use whatever regex you wish 
      System.out.println(s); 
     } 
    } 
} 

次のようにこのコードの出力は次のとおりです。。


quotIncluding

NoNumbers
でReplaceAllメソッドは(、空の文字列を、この場合には)正規表現パターンを使用して、2番目のパラメータを持つすべての一致を置き換え

単語を見つけます。

1

Javaは、正規表現を利用する非常に素晴らしいPattern classを誇っています。あなたは間違いなくそれを読むべきです。良いリファレンスガイドはhere.

私はあなたのためのコーディングソリューションを投稿するつもりだったが、それに私を打つstyfle!

for(int i = 0; i < myArray.size(); i++){ 
    Pattern p = Pattern.compile("[a-z][A-Z]"); 
    Matcher m = p.matcher(myArray.get(i)); 
    boolean match = m.matches(); 
    //more code to get the string you want 
} 

しかし、あまりにもかさばること:私は、ここでは異なるやるつもりだった唯一のことは、ループのために、私のような、パターンとMatcherのクラスを使用していた範囲内でした。 styfleの解決策は簡単で簡単です。

+0

偉大な答え。スタックオーバーフローへようこそ! –

+0

ありがとう!このコミュニティは最高です。 :) – SpacePyro