Java中nextLine().split("\\s+")功能解析及Python实现问询
Java中
nextLine().split("\\s+")的功能及Python等价实现 功能解释
在Java里,这串代码是结合两个操作完成输入处理:
nextLine():通过Scanner对象读取输入流的一整行文本,返回不含换行符的字符串。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
相关产品推荐
相关产品推荐

