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;
}
しかし、私は入力フィールドにテキストを挿入すると間違った答えを与えます。誰かが私がここで間違っていることに光を当てることはできますか?
この投稿を確認してください。それは重複している。 http://stackoverflow.com/questions/1805518/replacing-all-non-alphanumeric-characters-with-empty-strings – htpvl
@kimdungリンクされた質問と重複しているわけではありません。それは正規表現についてですが、これは正しくありません。これは約1文字のUnicode番号です。 –
私もそれを見ていましたが、私はどのような方法で使用できるのかが限られているので、私の状況には役に立たないと思います。 –