Comment vérifier si la chaîne contient \ n ou un nouveau caractère de ligne?Vérifiez si la chaîne contient n Java
word.contains("\\n")
word.contains("\n")
Comment vérifier si la chaîne contient \ n ou un nouveau caractère de ligne?Vérifiez si la chaîne contient n Java
word.contains("\\n")
word.contains("\n")
Si la chaîne a été construit dans le même programme, je recommande d'utiliser ceci:
String newline = System.getProperty("line.separator");
boolean hasNewline = word.contains(newline);
Mais si vous specced à utiliser \ n, ce pilote illustre ce qu'il faut faire:
class NewLineTest {
public static void main(String[] args) {
String hasNewline = "this has a newline\n.";
String noNewline = "this doesn't";
System.out.println(hasNewline.contains("\n"));
System.out.println(hasNewline.contains("\\n"));
System.out.println(noNewline.contains("\n"));
System.out.println(noNewline.contains("\\n"));
}
}
a donné lieu à
true
false
false
false
dans votre commentaire à reponse:
class NewLineTest {
public static void main(String[] args) {
String word = "test\n.";
System.out.println(word.length());
System.out.println(word);
word = word.replace("\n","\n ");
System.out.println(word.length());
System.out.println(word);
}
}
Résultats dans
6
test
.
7
test
.
Le second:
word.contains("\n");
J'ai essayé, mais cela ne fonctionne pas –
pourriez-vous expliquer pourquoi cela ne fonctionne pas. Quelle est votre contribution, quel est le résultat et quel est le résultat attendu? –
Désolé à ce sujet je n'ai pas redémarré mon tomcat après avoir reconstruit JAr donc il n'a pas fait effet.Il fonctionne maintenant bien Remplacer s = s.replace ("\ n", "\ n"); ne fonctionne pas . –
Pour la portabilité, vous devriez vraiment faire quelque chose comme ceci:
public static final String NEW_LINE = System.getProperty("line.separator")
.
.
.
word.contains(NEW_LINE);
sauf si vous êtes absolument certain que "\n"
est ce que vous voulez.
Fonctionne mais s = s.replace ("\ n", "\ n"); ne remplace pas la nouvelle ligne par une nouvelle ligne et des espaces. –
Oui, c'est le cas. Mise à jour de ma réponse Il montre clairement un espace après le retour à la ligne. – corsiKa