2011-10-19 31 views
6

現在の文字位置にスペース、改行またはタブがあるかどうかを確認しようとしています。スペースは機能しますが、タブと改行はありません。移動図、私はそれらのエスケープを使用しています、スペースのためのちょうど普通のスペース...場所でこれらを見つける正しい方法は何ですか?charAt()でスペース、改行、タブを検索する

if(String.valueOf(txt.charAt(strt)).equals(" ") || 
        txt.charAt(strt) == '\r' || 
        txt.charAt(strt) == '\n' || 
        txt.charAt(strt) == '\t') { 
    //do stuff 
        } 
+0

「txt」とは何ですか?それが 'String'なら...なぜあなたは' String.valueOf() 'を使っていますか? –

+0

ブライアン:互換性のない型に不平等がなければ(と入力するのが難しい) – Amadan

+0

txtは編集可能 – bwoogie

答えて

8

これが私の作品:

char c = txt.charAt(strt); 
    if (c == ' ' || c == '\t' || c == '\n' || c == '\r') 
    System.out.println("Found one at " + strt); 

それは従うことが少し難しいですがユアーズは、あまりにも動作します。なぜそれはあなたのためにはうまくいかないのですか?私は知らないのです。あなたは実際にそれにタブやものが入っていると確信していますか?

+0

コストを節約するために比較するこの方法に変更されました。 – bwoogie

1

入力文字列を確認してください。また、スペースは空白文字を比較することで確認できます。比較のためだけに新しいStringオブジェクトを作成するにはコストがかかります。

+0

...と同様に4回ずつ各文字を抽出しています。 – Amadan

0

アンドロイドのEditableのドキュメントを見ると、charを返します。したがって...

if (txt.charAt(strt) == ' ' || 
    txt.charAt(strt) == '\r' || 
    txt.charAt(strt) == '\n' || 
    txt.charAt(strt) == '\t') 
{ 
    //do stuff 
} 

期待される結果が得られます。

関連する問題