首页 > 解决方案 > 替换字符串上的空格并使用 toCharArray() 打破它们似乎不起作用

问题描述

我尝试做一些字符串操作来使用可用的方法,我注意到当我使用该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在空格之后删除了所有其他值。

我在这里想念什么?

当无事可做时,我会尝试不同的方法。所以现在我只是想知道为什么它没有按预期工作。

我会很感激任何帮助。

谢谢你。

标签: java

解决方案


您应该使用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 . 

推荐阅读