2016-04-08 20 views
2

Javaのメソッドを作成しようとしていますが、これはテキストの行にある英数字以外の記号を認識して削除するメソッドです。しかし、私は使用できるツールが限られています。私はループとスキャナを使用してテキストを読み込み、問題の文字を取り除くためにcharAtメソッドとsubstringメソッドを使用するだけです。ここに私が思いついたコードですJavaの文字を部分文字列にする

public String sanitize2(){ 
     Scanner sanitizer = new Scanner(input.getText()); 
     String toBeSanitized = sanitizer.nextLine(); 
     int length = toBeSanitized.length(); 
     for (int i=0;i < toBeSanitized.length(); i++){ 
      if ((toBeSanitized.charAt(i) >= 'a' && toBeSanitized.charAt(i) <= 'z') || 
       (toBeSanitized.charAt(i) >= 'A' && toBeSanitized.charAt(i) <= 'Z') || 
       (toBeSanitized.charAt(i) >= '0' && toBeSanitized.charAt(i) <= '9')) 
      { 
        toBeSanitized = toBeSanitized.substring(0,i) + toBeSanitized.substring(i+1); 
      } 
     } 
     input.setText(toBeSanitized); 
     return toBeSanitized; 
    } 

しかし、私は入力フィールドにテキストを挿入すると間違った答えを与えます。誰かが私がここで間違っていることに光を当てることはできますか?

+0

この投稿を確認してください。それは重複している。 http://stackoverflow.com/questions/1805518/replacing-all-non-alphanumeric-characters-with-empty-strings – htpvl

+0

@kimdungリンクされた質問と重複しているわけではありません。それは正規表現についてですが、これは正しくありません。これは約1文字のUnicode番号です。 –

+0

私もそれを見ていましたが、私はどのような方法で使用できるのかが限られているので、私の状況には役に立たないと思います。 –

答えて

1

特定のツールをすべて使用する必要がない場合は、問題を解決するのに役立つと思います。

String toBeSanitized = "(*this*)* text is ^0nly for t3st!ng!"; 
    String sanitizedStr = ""; 
    int length = toBeSanitized.length(); 
    for (int i=0;i < toBeSanitized.length(); i++){ 
     if ((toBeSanitized.charAt(i) >= 'a' && toBeSanitized.charAt(i) <= 'z') || 
     (toBeSanitized.charAt(i) >= 'A' && toBeSanitized.charAt(i) <= 'Z') || 
     (toBeSanitized.charAt(i) >= '0' && toBeSanitized.charAt(i) <= '9') || 
     toBeSanitized.charAt(i) == ' ') // optional 
     { 
      sanitizedStr += toBeSanitized.charAt(i); 
     } 
    } 

    System.out.println(sanitizedStr); 

また、スペースを入れておきますが、必要に応じて削除することもできます。 お手伝いをしてください。

+0

ありがとう、これはうまくいくようです。この権利を読んでいるのであれば、不要な文字を削除するのではなく、受け入れられた文字だけで構成される新しい文字列を作成しますか? –

+0

はい、あなたは正しいです。あなたがそれらを必要としない場合は、単にそれらをスキップします。 – JanLeeYu

関連する問題