You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中nextLine().split("\\s+")功能解析及Python实现问询

Java中nextLine().split("\\s+")的功能及Python等价实现

功能解释

在Java里,这串代码是结合两个操作完成输入处理:

  1. nextLine():通过Scanner对象读取输入流的一整行文本,返回不含换行符的字符串。
  2. split("\\s+"):调用字符串的分割方法,参数\\s+是正则表达式,匹配一个或多个连续的空白字符(包括空格、制表符、换行符等所有Unicode定义的空白类型)。

整体效果是:把读取到的整行文本按任意数量的空白字符分割成字符串数组,同时自动忽略文本开头和结尾的空白区域(不会生成空字符串元素)。比如输入" hello world ",会得到数组["hello", "world"]。

Python等价实现

Python里可以用更简洁的代码实现完全一致的功能:

核心代码

# 读取一行输入并按任意空白分割
parts = input().split()

代码说明

  • input():和Java的nextLine()作用一致,读取控制台的一整行输入,返回不含换行符的字符串。
  • split():Python字符串的split()方法不带参数时,默认按任意数量的空白字符分割字符串,同时自动忽略开头和结尾的空白,和Java的split("\\s+")行为完全匹配。

示例对比

Java示例

import java.util.Scanner;

public class InputSplitDemo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String[] result = scanner.nextLine().split("\\s+");
        // 输出分割后的每个元素
        for (String item : result) {
            System.out.println(item);
        }
    }
}

Python示例

result = input().split()
# 输出分割后的每个元素
for item in result:
    print(item)

两个示例在输入" apple banana cherry "时,都会输出:

apple
banana
cherry

补充:正则显式实现(可选)

如果想更贴近Java的正则写法,也可以用Python的re模块,但需要先去除首尾空白避免生成空字符串:

import re

line = input().strip()
parts = re.split(r'\s+', line)

不过这种写法和直接用input().split()效果完全一致,前者更简洁。

内容的提问来源于stack exchange,提问作者j v

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 21:50:33