我尝试进行一些字符串操作来使用可用的方法,我注意到当我使用 replaceAll("\\s+","")
方法删除字符串中的空格时,它失败了。
System.out.print("Enter a word: ");
String word = scanner.next();
String cleansed = word.replaceAll("\\s+","");
char[] letters = cleansed.toCharArray();
for(char c : letters){
System.out.print(c+" ");
}
当我进入控制台并执行类似操作时,
Enter a word : I am entering some word.
我在控制台上得到的输出是I
,它似乎删除了空格后的所有其他String
值。
我在这里缺少什么?
当无事可做时,我会尝试不同的方法。所以现在我只是想知道为什么它没有按预期工作。
如果有任何帮助,我将不胜感激。
谢谢。
最佳答案
您应该使用scanner.nextLine()
而不是scanner.next()
。还可以使用 word.replaceAll()
而不是 word.replace()
这是工作代码:
import java.util.Scanner;
public class Example {
public static void main(String[] a) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a word: ");
String word = scanner.nextLine();
String cleansed = word.replace("\\s+","");
char[] letters = cleansed.toCharArray();
for(char c : letters){
System.out.print(c+" ");
}
}
}
输出将是:
Enter a word: Enter a word : I am entering some word.
E n t e r a w o r d : I a m e n t e r i n g s o m e w o r d .
关于java - 替换字符串上的空格并使用 toCharArray() 打破它们似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50147451/