Insertion de parties d'une chaîne en Java


J'apprends actuellement Java à l'école et j'ai du mal avec cette seule tâche. Ce que vous êtes censé faire est de prendre une chaîne et d'insérer "like" entre chaque mot pour le faire "teen talk", c'est-à-dire que j'aime aimer aimer le code.

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;

}

Est ce que quelqu'un sait comment je pourrais insérer "comme" dans un certain endroit, et comment je pourrais le faire insérer dans les espaces qu'il est censé faire? Comme vous pouvez le voir, j'ai également eu des problèmes avec la création de boucles infinies.

Author: Leo Smart, 2017-04-18

2 answers

Ce que vous êtes censé faire est de prendre une chaîne et d'insérer "like" dans entre chaque mot pour le faire "teen talk".

strings sont immuables signifiant chaque fois que vous manipulez (c'est-à-dire la méthode substring dans votre cas) un string particulier, vous obtiendrez un nouveau string et l'original string est pas modifié. Vous pouvez également utiliser un StringBuilder (mutable) ou utiliser la méthode String#replace .

En utilisant String#remplacer:

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

En utilisant un 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();
}

En Supposant que c'est l'entrée:

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

Sortie:

teen like talk
 3
Author: Aomine, 2017-04-18 17:16:21
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

En Savoir plus sur StringJoiner ici https://www.mkyong.com/java8/java-8-stringjoiner-example/

 0
Author: Mohamed Anees A, 2017-04-18 17:13:39