2017-04-18 49 views
2

我目前在學校學習Java,而且我很難完成這一項任務。你應該做的是採取一個字符串,並在每個單詞之間插入「like」以使其成爲「青少年交談」,即我喜歡喜歡喜歡代碼的愛。在Java中插入字符串的部分

public String teenTalk(String sentence) 
{ 
    for (int i = 0; i < sentence.length(); i++) 
    { 
     if(sentence.substring(i, i+1).equals(" ")) 
     { 
      System.out.println("like"); 

     } 
    } 

    return sentence; 

} 

有誰知道我該如何在某個位置插入「like」,以及如何讓它插入到它應該放置的空間中?正如你所看到的,我也遇到了無限循環的問題。

+0

除非限制,使用字符串函數,如更換的replaceAll。 – K139

+0

Java中String的一點是它是不可變的 - 你不能改變它。你只能創建一個新的'String'。學習語言越多,原因越明確。同時,您可以使用['StringBuilder'](http://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html)類構建新的'String'實例。你也可以使用'+ ='運算符,它實際上是'StringBuilder'的一個包裝器(在這個語言的歷史中)。 –

回答

3

你應該做的是取一個字符串並在每個詞之間插入「like」在 之間以使其成爲「青少年說話」。每次操作(即substring你的情況的方法)特定0​​時間

strings是不可改變的意義,你會得到一個新的string回到原來的string修改。或者,您可以使用StringBuilder(可變)或使用String#replace方法。

使用String#replace

public String teenTalk(String sentence){ 
    return sentence.replace(" ", " like "); 
} 

使用StringBuilder

public String teenTalk(String sentence) { 
     StringBuilder builder = new StringBuilder(); 
     for (int i = 0; i < sentence.length(); i++) { 
      if(sentence.charAt(i) == ' '){ 
       builder.append(" like "); 
      }else{ 
       builder.append(sentence.charAt(i)); 
      } 
     } 
     return builder.toString(); 
} 

假設這是輸入:

System.out.println(teenTalk("teen talk")); 

輸出:

teen like talk 
0
String text = "I love coding"; //Any string you wish 
StringJoiner sj= new StringJoiner(" like "); //here,"like" is the Join you need between every word 
Arrays.asList(text.split(" ")).forEach(word -> sj.add(word)); //we are splitting your text and adding each word. This will insert "like" after every addition except the last 
System.out.println(sj.toString()); // Converting to String 

瞭解更多關於StringJoiner這裏https://www.mkyong.com/java8/java-8-stringjoiner-example/