为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

汪汪一只猫 2021-09-03 14:31:09
我想将用户输入解析为单个字符。例如,输入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("")); }任何帮助表示赞赏!
查看完整描述

3 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

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


查看完整回答
反对 回复 2021-09-03
?
千巷猫影

TA贡献1829条经验 获得超7个赞

用 String.toCharArray

这将为您提供一个char[]字符串,并保留空格。


查看完整回答
反对 回复 2021-09-03
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

我很好奇你为什么要这样做。字符串基本上可以作为数组读取charAt()。您可以使用 将字符串转换为流StringReader。您可以将字符串转换为IntStreamwithchars()或codePoints()。或者,如果其内部字符数组带有toCharArray().


关于您在评论中所说的toCharArray()或.split()切断的内容,他们没有。您一定在某个地方有错误,请向我们展示您的代码。


   public static void main( String[] args ) {

      String test = "Hello! My name is x";

      char[] chars = test.toCharArray();

      System.out.println( Arrays.toString( chars ) );

   }

这会为我打印整个字符串并且不会切断。


run:

[H, e, l, l, o, !,  , M, y,  , n, a, m, e,  , i, s,  , x]

BUILD SUCCESSFUL (total time: 0 seconds)

更新:关于您的更新,next()查找默认情况下在空白处截断的标记。你要nextLine()。


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

改成:


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


查看完整回答
反对 回复 2021-09-03
  • 3 回答
  • 0 关注
  • 171 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信