java - 替换字符串上的空格并使用 toCharArray() 打破它们似乎不起作用

标签 java

我尝试进行一些字符串操作来使用可用的方法,我注意到当我使用 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/

相关文章:

java - java中的单维数组并试图获取数组中有多少数字大于算术平均值

java - 如何在用户强制停止后自动重新启动服务

java对象,共享变量

java - 将值连接到变量名称

java - 如何在java中实现无符号字节,限制是大小只能是1个字节

java - 在 IDEA 中解决工作区项目的依赖关系

java - 为什么我应该在 java 中使用 (String[])null 而不是 null?

java - 字符串值数据成员被编译器跳过

java - 创建对话窗口

java - 如何在 java hibernate 中将参数设置为单引号之间的 native 查询?