如何在Java Scanner程序中用split方法将字符串转为数组?
如何用split()将字符串转为ArrayList
嗨,我来帮你搞定这个字符串转ArrayList的需求!你已经找对方向了——split()方法就是核心,咱们一步步来实现你要的功能。
第一步:理解split()的正确用法
split()方法能把字符串按指定规则拆分成字符串数组。针对你按单词分割的需求,推荐用**split("\\s+")**:
- 它会按任意数量的空白字符(包括单个空格、连续空格、制表符)分割,比单纯的
split(" ")更健壮,能处理用户输入时不小心打多空格的情况 - 如果用
split(" "),遇到连续空格会生成空字符串元素,反而添乱
第二步:把数组转成可修改的ArrayList
split()返回的是String[]数组,咱们可以用Arrays.asList()把它转成列表,但这个方法返回的列表是固定大小的(不能添加/删除元素)。如果需要可灵活修改的ArrayList,记得用new ArrayList<>()把它包装起来。
第三步:把代码加到你的程序里
在你代码的// string to arrays注释下方,添加这段代码即可:
// 按任意空白字符分割字符串为数组 String[] wordsArray = line.split("\\s+"); // 将数组转换为可修改的ArrayList ArrayList<String> wordsList = new ArrayList<>(Arrays.asList(wordsArray)); // 输出转换结果验证 System.out.println("转换后的ArrayList:" + wordsList);
额外小提示
如果你的输入里带标点(比如逗号、句号),可以调整split()的正则表达式,比如split("[\\s,.]+"),就能同时把空格和标点作为分隔符,避免单词后面带标点的情况。
验证效果
当你输入This is a good class with JAVA时,程序会输出:
转换后的ArrayList:[This, is, a, good, class, with, JAVA]
完全符合你想要的结果~
内容的提问来源于stack exchange,提问作者alessi.gg
相关产品推荐
相关产品推荐

