将包含特殊字符的字符串拆分为单个字符

我想将用户输入解析为单个字符。例如,输入


Hello! My name is x

应该分为:


{"H", "e", "l", "l", "o", "!"," ", "M","y"....}

请注意,我想保留空格。


我似乎无法弄清楚如何使用String.split来做到这一点。我试过寻找可以做到这一点的正则表达式,但所有这些都在 ! 处切断。


这是当前代码,我正在尝试拆分来自扫描仪的字符串。


    public static List<String> getUserInput() {

        Scanner scanner = new Scanner(System.in);


        System.out.print("Enter a line of text: ");


        return Arrays.asList(scanner.next().split("")); 

}

任何帮助表示赞赏!


汪汪一只猫
浏览 172回答 3
3回答

慕哥6287543

尝试这个:String[] cs = s.split("");

千巷猫影

用&nbsp;String.toCharArray这将为您提供一个char[]字符串,并保留空格。

繁星点点滴滴

我很好奇你为什么要这样做。字符串基本上可以作为数组读取charAt()。您可以使用 将字符串转换为流StringReader。您可以将字符串转换为IntStreamwithchars()或codePoints()。或者,如果其内部字符数组带有toCharArray().关于您在评论中所说的toCharArray()或.split()切断的内容,他们没有。您一定在某个地方有错误,请向我们展示您的代码。&nbsp; &nbsp;public static void main( String[] args ) {&nbsp; &nbsp; &nbsp; String test = "Hello! My name is x";&nbsp; &nbsp; &nbsp; char[] chars = test.toCharArray();&nbsp; &nbsp; &nbsp; System.out.println( Arrays.toString( chars ) );&nbsp; &nbsp;}这会为我打印整个字符串并且不会切断。run:[H, e, l, l, o, !,&nbsp; , M, y,&nbsp; , n, a, m, e,&nbsp; , i, s,&nbsp; , x]BUILD SUCCESSFUL (total time: 0 seconds)更新:关于您的更新,next()查找默认情况下在空白处截断的标记。你要nextLine()。&nbsp; &nbsp; return Arrays.asList(scanner.next().split(""));改成:&nbsp; &nbsp; return Arrays.asList(scanner.nextLine().split(""));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java