从单行中给出的控制台读取数字,由 space 分隔
Read numbers from the console given in a single line, separated by a space
我的任务是读取 n
给定的数字 单行 ,由 space[=22= 分隔] (
) 来自控制台。
当我在 单独的行 (Console.ReadLine()
) 中阅读每个数字时,我知道该怎么做,但是当数字是在同一行。
您可以使用 String.Split()
:
拆分行
var line = Console.ReadLine();
var numbers = line.Split(' ');
foreach(var number in numbers)
{
int num;
if (Int32.TryParse(number, out num))
{
// num is your number as integer
}
}
您可以使用 String.Split
. You can provide the character(s) that you want to use to split the string into multiple. If you provide none all white-spaces 假定为拆分字符(换行符、制表符等):
string[] tokens = line.Split(); // all spaces, tab- and newline characters are used
或者,如果您只想使用空格作为分隔符:
string[] tokens = line.Split(' ');
如果你想将它们解析为 int
你可以使用 Array.ConvertAll()
:
int[] numbers = Array.ConvertAll(tokens, int.Parse); // fails if the format is invalid
如果要检查格式是否有效,请使用 int.TryParse
.
您只需拆分输入的数据。
string numbersLine = console.ReadLine();
string[] numbers = numbersLine.Split(new char[] { ' '});
// Convert to int or whatever and use
您可以使用 Linq 来 读取 行然后拆分,最后将每个项目转换为整数:
int[] numbers = Console
.ReadLine()
.Split(new Char[] {' '}, StringSplitOptions.RemoveEmptyEntries)
.Select(item => int.Parse(item))
.ToArray();
这将帮助您删除输入字符串末尾或开头的多余空格。
string daat1String = Console.ReadLine();
daat1String = daat1String.TrimEnd().TrimStart();
string[] data1 = daat1String.Split(null);
int[] data1Int = Array.ConvertAll(data1, int.Parse);
你可以
int[] Numbers = Array.ConvertAll(Console.ReadLine().Split(' '),(item) => Convert.ToInt32(item));
上面这行帮助我们在 Line 中得到单个整数,用 a 分隔
单个space。两个或多个space数字之间会导致错误。
int[] Numbers = Array.ConvertAll(Console.ReadLine().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries), (item) => Convert.ToInt32(item));
此变体将修复错误并且即使在一行
中的数字之间有两个或更多 space 时也能正常工作
你可以使用这个功能,很有帮助
static List<string> inputs = new List<string>();
static int input_pointer = 0;
public static string cin(char sep = ' ')
{
if (input_pointer >= inputs.Count)
{
string line = Console.ReadLine();
inputs = line.Split(sep).OfType<string>().ToList();
input_pointer = 0;
}
string v = inputs[input_pointer];
input_pointer++;
return v;
}
示例:
for(var i =0; i<n ; i++)
for (var j = 0; j<n; j++)
{
M[i,j] = Convert.ToInt16(cin());
}
我的任务是读取 n
给定的数字 单行 ,由 space[=22= 分隔] (
) 来自控制台。
当我在 单独的行 (Console.ReadLine()
) 中阅读每个数字时,我知道该怎么做,但是当数字是在同一行。
您可以使用 String.Split()
:
var line = Console.ReadLine();
var numbers = line.Split(' ');
foreach(var number in numbers)
{
int num;
if (Int32.TryParse(number, out num))
{
// num is your number as integer
}
}
您可以使用 String.Split
. You can provide the character(s) that you want to use to split the string into multiple. If you provide none all white-spaces 假定为拆分字符(换行符、制表符等):
string[] tokens = line.Split(); // all spaces, tab- and newline characters are used
或者,如果您只想使用空格作为分隔符:
string[] tokens = line.Split(' ');
如果你想将它们解析为 int
你可以使用 Array.ConvertAll()
:
int[] numbers = Array.ConvertAll(tokens, int.Parse); // fails if the format is invalid
如果要检查格式是否有效,请使用 int.TryParse
.
您只需拆分输入的数据。
string numbersLine = console.ReadLine();
string[] numbers = numbersLine.Split(new char[] { ' '});
// Convert to int or whatever and use
您可以使用 Linq 来 读取 行然后拆分,最后将每个项目转换为整数:
int[] numbers = Console
.ReadLine()
.Split(new Char[] {' '}, StringSplitOptions.RemoveEmptyEntries)
.Select(item => int.Parse(item))
.ToArray();
这将帮助您删除输入字符串末尾或开头的多余空格。
string daat1String = Console.ReadLine();
daat1String = daat1String.TrimEnd().TrimStart();
string[] data1 = daat1String.Split(null);
int[] data1Int = Array.ConvertAll(data1, int.Parse);
你可以
int[] Numbers = Array.ConvertAll(Console.ReadLine().Split(' '),(item) => Convert.ToInt32(item));
上面这行帮助我们在 Line 中得到单个整数,用 a 分隔 单个space。两个或多个space数字之间会导致错误。
int[] Numbers = Array.ConvertAll(Console.ReadLine().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries), (item) => Convert.ToInt32(item));
此变体将修复错误并且即使在一行
中的数字之间有两个或更多 space 时也能正常工作你可以使用这个功能,很有帮助
static List<string> inputs = new List<string>();
static int input_pointer = 0;
public static string cin(char sep = ' ')
{
if (input_pointer >= inputs.Count)
{
string line = Console.ReadLine();
inputs = line.Split(sep).OfType<string>().ToList();
input_pointer = 0;
}
string v = inputs[input_pointer];
input_pointer++;
return v;
}
示例:
for(var i =0; i<n ; i++)
for (var j = 0; j<n; j++)
{
M[i,j] = Convert.ToInt16(cin());
}