2016-09-29 7 views
-1

私はJavaを使用して少しプロジェクトを作成します。Javaのストリングビルダを使用した文字列逆

文字列を逆にしたい。 「私は女の子です」と入力した場合、反転印刷...

すでにStringBuilderを使用しようとしました。 はまた、私は

WISH印刷と

私...それはStringBufferの文法を使用して... しかし、私はそれが私の願いを印刷されません... を失敗した書き込み - > "I lrigはMA"

「私は女の子です」 - >「私は馬鹿だ」逆転!!

どうすればいいですか?..

ありがとうございました〜!!!

public String reverse() {   
    String[] words = str.split("\\s");  
    StringTokenizer stringTokenizer = new StringTokenizer(str, " "); 

    for (String string : words) { 
     System.out.print(string); 
    } 

    String a = Arrays.toString(words); 

    StringBuilder builder = new StringBuilder(a); 

    System.out.println(words[0]); 

    for (String st : words){ 
     System.out.print(st); 
    } 

    return "";  
} 
+0

http://stackoverflow.com/a/12305693/3145960 –

+0

OPは文字列全体を逆にしたくない場合、各トークン(スペースで区切って)を逆にしたいと考えています。 – TheLostMind

+0

StringBuilderには既にreverse()メソッドがあります。 https://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html#reverse() – sura2k

答えて

4

これを行うためにJava 8コード:

public static void main(String[] args) { 
    String str = "I am a girl"; 
    StringBuilder sb = new StringBuilder(); 
    // split() returns an array of Strings, for each string, append it to a StringBuilder by adding a space. 
    Arrays.asList(str.split("\\s+")).stream().forEach(s -> { 
     sb.append(new StringBuilder(s).reverse() + " "); 
    }); 
    String reversed = sb.toString().trim(); // remove trailing space 
    System.out.println(reversed); 
} 

O/P:

I ma a lrig 
+0

ありがとうございました!!!!!!だから... forEachは何ですか(s - > {??????? –

+0

@ワンソン送 - ラムダ式と呼ばれます。 – TheLostMind

1

あなたがlambdaに行きたくないならば、あなたはあまりにも

をこのソリューションを試すことができます
String str = "I am a girl"; 
     String finalString = ""; 
     String s[] = str.split(" "); 
     for (String st : s) { 
      finalString += new StringBuilder(st).reverse().append(" ").toString(); 
     } 
     System.out.println(finalString.trim()); 
    } 
関連する問題