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

如何在C#中读取空格或换行分隔的控制台输入?

统一处理空格/换行分隔的输入转数组

嘿,这个问题其实很好解决!你不用分别针对空格和换行写两套逻辑——因为不管是空格还是换行,本质都是空白分隔符,我们可以用一个通用的方法把它们全部处理掉。

核心思路

不管输入是用空格还是换行(甚至混合两种)分隔,我们只需要匹配所有的空白字符,然后以此为依据拆分字符串,最后过滤掉可能出现的空字符串(比如输入开头/结尾的空白,或者连续多个分隔符)就能得到干净的数组了。

代码示例(不同语言)

JavaScript

// 假设input是你的输入字符串
const input = "1\n2 3\n4 5"; // 混合换行和空格的例子
const resultArray = input.split(/\s+/).filter(item => item.trim() !== '');
console.log(resultArray); // 输出: ["1", "2", "3", "4", "5"]
  • /\s+/是正则表达式,匹配一个或多个任意空白字符(包括空格、换行、制表符等)
  • filter用来移除拆分后可能出现的空字符串(比如输入开头有换行的情况)

Python

Python的split()方法默认就会按任意空白字符拆分,而且自动忽略开头结尾的空白,非常省心:

input_str = "1 2\n3\n4 5"
result_array = input_str.split()
print(result_array) # 输出: ['1', '2', '3', '4', '5']

如果你只想匹配空格和换行(排除制表符)

如果你的场景里不需要处理制表符,只针对空格和换行,可以把正则改成/[\n ]+/(JS),或者用正则拆分后过滤空字符串(Python):

// JS 只处理空格和换行
const resultArray = input.split(/[\n ]+/).filter(item => item.trim() !== '');

这样不管你的输入是纯空格分隔、纯换行分隔,甚至是两者混合的情况,都能得到你想要的数组啦!

内容的提问来源于stack exchange,提问作者Prashant Jain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:26:20