[java] for-eachループをStringのすべての文字に適用するにはどうすればよいですか?


Answers

String s = "xyz";
for(int i = 0; i < s.length(); i++)
{
   char c = s.charAt(i);
}

Question

だから私は文字列内の各文字を繰り返したい。

ので、私は考えました:

for (char c : "xyz")

コンパイラエラーが発生する:

MyClass.java:20: foreach not applicable to expression type

これどうやってするの?




別の便利な解決策は、この文字列をStringの配列として扱うことができます

for (String s : "xyz".split("")) {
    System.out.println(s);
}



トラバーズのcharAt() 、文字列にcharAt()を使用することもできます。

次のように:

String str = "xyz"; // given String
char st = str.charAt(0); // for example we take 0 index element 
System.out.println(st); // print the char at 0 index 

charAt()は、特定の文字列をトラバースするのに役立つjavaの文字列処理のメソッドです。




Java 8を使用する場合は、 String chars()を使用してStreamを取得できますが、 int返すためcharを返す必要があります。

"xyz".chars().forEach(i -> System.out.print((char)i));

EclipseコレクションでJava 8を使用する場合は、 CharAdapterクラスforEachメソッドをラムダまたはメソッド参照で使用して、 Stringすべての文字を反復処理できます。

CharAdapter.adapt("xyz").forEach(c -> System.out.print(c));

この特定の例では、メソッド参照を使用することもできます。

CharAdapter.adapt("xyz").forEach(System.out::print)

注:私はEclipse Collectionsのコミッターです。






Links