C# 如何在c中将用户输入转换为int数组#
我发现最接近于回答这个问题的是使用for循环将几个字符串输入转换成一个数组 我只想取1个字符串,并将前7位数字转换为整数数组 此代码获取字符的整数值,然后根据Unicode值对其进行测试,如果重复while循环并再次请求输入有效或无效,则返回true。当我使用控制台执行此操作时。Read();方法,并首先输入一个无效值,它将表明我的代码在另外7次迭代中无效。这意味着即使字符串有有效输入,console.Read()也必须再运行7次C# 如何在c中将用户输入转换为int数组#,c#,arrays,C#,Arrays,我发现最接近于回答这个问题的是使用for循环将几个字符串输入转换成一个数组 我只想取1个字符串,并将前7位数字转换为整数数组 此代码获取字符的整数值,然后根据Unicode值对其进行测试,如果重复while循环并再次请求输入有效或无效,则返回true。当我使用控制台执行此操作时。Read();方法,并首先输入一个无效值,它将表明我的代码在另外7次迭代中无效。这意味着即使字符串有有效输入,console.Read()也必须再运行7次 public static void GetDigits(ref
public static void GetDigits(ref int[] callNumberArray, ref bool valid)
{
Console.WriteLine("Please enter the code you wish to dial.");
while ( valid == false)
{//This loop will reiterate the read() function if the code is not valid.
valid = true;
for (int i = 0; i < 7; i++ )
{
if (i != 6 && i!= 5 && i != 5 && i != 4 && i != 3 && i != 2 && i != 1 && i != 0)
{
i = 0;
}
callNumberArray[i] = Console.Read();// I want to change this
}
for (int i = 0; i < 7; i++)
{
if (i != 6 && i != 5 && i != 5 && i != 4 && i != 3 && i != 2 && i != 1 && i != 0)
{
i = 0;
}
if (callNumberArray[0] == 53)
{
valid = false;
}
if (callNumberArray[i] < 49)
{
valid = false;
}
if (callNumberArray[i] > 57 && callNumberArray[i] < 65)
{
valid = false;
}
if (callNumberArray[i] > 90 && callNumberArray[i] < 97)
{
valid = false;
}
if (callNumberArray[i] > 122)
{
valid = false;
}
}
if (valid == false)
{
Console.WriteLine("You entered an invalid code. Please re-enter your code.");
}
}
public static void GetDigits(ref int[]callNumberArray,ref bool valid)
{
Console.WriteLine(“请输入您要拨打的代码”);
while(valid==false)
{//如果代码无效,此循环将重复read()函数。
有效=真;
对于(int i=0;i<7;i++)
{
如果(i!=6&&i!=5&&i!=5&&i!=4&&i!=3&&i!=2&&i!=1&&i!=0)
{
i=0;
}
callNumberArray[i]=Console.Read();//我想更改此设置
}
对于(int i=0;i<7;i++)
{
如果(i!=6&&i!=5&&i!=5&&i!=4&&i!=3&&i!=2&&i!=1&&i!=0)
{
i=0;
}
如果(callNumberArray[0]==53)
{
有效=错误;
}
if(callNumberArray[i]<49)
{
有效=错误;
}
if(callnumberraray[i]>57&&callnumberraray[i]<65)
{
有效=错误;
}
if(callnumberraray[i]>90&&callnumberraray[i]<97)
{
有效=错误;
}
if(callNumberArray[i]>122)
{
有效=错误;
}
}
if(有效==false)
{
Console.WriteLine(“您输入的代码无效。请重新输入您的代码。”);
}
}
不确定您编写的“算法”,我同意Sergey Berezovskiy的观点,即if看起来很奇怪,无论如何,这应该回答您的具体问题:
public static void GetDigits(ref int[] callNumberArray, ref bool valid)
{
Console.WriteLine("Please enter the code you wish to dial.");
while ( valid == false)
{//This loop will reiterate the read() function if the code is not valid.
valid = true;
for (int i = 0; i < 7; i++ )
{
if (i != 6 && i!= 5 && i != 5 && i != 4 && i != 3 && i != 2 && i != 1 && i != 0)
{
i = 0;
}
callNumberArray[i] = Console.Read();// I want to change this
}
for (int i = 0; i < 7; i++)
{
if(!valid) break;
if (i != 6 && i != 5 && i != 5 && i != 4 && i != 3 && i != 2 && i != 1 && i != 0)
{
i = 0;
}
if (callNumberArray[0] == 53)
{
valid = false;
}
if (callNumberArray[i] < 49)
{
valid = false;
}
if (callNumberArray[i] > 57 && callNumberArray[i] < 65)
{
valid = false;
}
if (callNumberArray[i] > 90 && callNumberArray[i] < 97)
{
valid = false;
}
if (callNumberArray[i] > 122)
{
valid = false;
}
}
if (valid == false)
{
Console.WriteLine("You entered an invalid code. Please re-enter your code.");
}
}
public static void GetDigits(ref int[]callNumberArray,ref bool valid)
{
Console.WriteLine(“请输入您要拨打的代码”);
while(valid==false)
{//如果代码无效,此循环将重复read()函数。
有效=真;
对于(int i=0;i<7;i++)
{
如果(i!=6&&i!=5&&i!=5&&i!=4&&i!=3&&i!=2&&i!=1&&i!=0)
{
i=0;
}
callNumberArray[i]=Console.Read();//我想更改此设置
}
对于(int i=0;i<7;i++)
{
如果(!有效)中断;
如果(i!=6&&i!=5&&i!=5&&i!=4&&i!=3&&i!=2&&i!=1&&i!=0)
{
i=0;
}
如果(callNumberArray[0]==53)
{
有效=错误;
}
if(callNumberArray[i]<49)
{
有效=错误;
}
if(callnumberraray[i]>57&&callnumberraray[i]<65)
{
有效=错误;
}
if(callnumberraray[i]>90&&callnumberraray[i]<97)
{
有效=错误;
}
if(callNumberArray[i]>122)
{
有效=错误;
}
}
if(有效==false)
{
Console.WriteLine(“您输入的代码无效。请重新输入您的代码。”);
}
}
不确定您编写的“算法”,我同意Sergey Berezovskiy的观点,即if看起来很奇怪,无论如何,这应该回答您的具体问题:
public static void GetDigits(ref int[] callNumberArray, ref bool valid)
{
Console.WriteLine("Please enter the code you wish to dial.");
while ( valid == false)
{//This loop will reiterate the read() function if the code is not valid.
valid = true;
for (int i = 0; i < 7; i++ )
{
if (i != 6 && i!= 5 && i != 5 && i != 4 && i != 3 && i != 2 && i != 1 && i != 0)
{
i = 0;
}
callNumberArray[i] = Console.Read();// I want to change this
}
for (int i = 0; i < 7; i++)
{
if(!valid) break;
if (i != 6 && i != 5 && i != 5 && i != 4 && i != 3 && i != 2 && i != 1 && i != 0)
{
i = 0;
}
if (callNumberArray[0] == 53)
{
valid = false;
}
if (callNumberArray[i] < 49)
{
valid = false;
}
if (callNumberArray[i] > 57 && callNumberArray[i] < 65)
{
valid = false;
}
if (callNumberArray[i] > 90 && callNumberArray[i] < 97)
{
valid = false;
}
if (callNumberArray[i] > 122)
{
valid = false;
}
}
if (valid == false)
{
Console.WriteLine("You entered an invalid code. Please re-enter your code.");
}
}
public static void GetDigits(ref int[]callNumberArray,ref bool valid)
{
Console.WriteLine(“请输入您要拨打的代码”);
while(valid==false)
{//如果代码无效,此循环将重复read()函数。
有效=真;
对于(int i=0;i<7;i++)
{
如果(i!=6&&i!=5&&i!=5&&i!=4&&i!=3&&i!=2&&i!=1&&i!=0)
{
i=0;
}
callNumberArray[i]=Console.Read();//我想更改此设置
}
对于(int i=0;i<7;i++)
{
如果(!有效)中断;
如果(i!=6&&i!=5&&i!=5&&i!=4&&i!=3&&i!=2&&i!=1&&i!=0)
{
i=0;
}
如果(callNumberArray[0]==53)
{
有效=错误;
}
if(callNumberArray[i]<49)
{
有效=错误;
}
if(callnumberraray[i]>57&&callnumberraray[i]<65)
{
有效=错误;
}
if(callnumberraray[i]>90&&callnumberraray[i]<97)
{
有效=错误;
}
if(callNumberArray[i]>122)
{
有效=错误;
}
}
if(有效==false)
{
Console.WriteLine(“您输入的代码无效。请重新输入您的代码。”);
}
}
我认为您应该使用Regex,例如:
MatchCollection matchList = Regex.Matches(Content, Pattern);
var list = matchList.Cast<Match>().Select(match => match.Value).ToList();
MatchCollection matchList=Regex.Matches(内容、模式);
var list=matchList.Cast().Select(match=>match.Value.ToList();
我认为您应该使用Regex,例如:
MatchCollection matchList = Regex.Matches(Content, Pattern);
var list = matchList.Cast<Match>().Select(match => match.Value).ToList();
MatchCollection matchList=Regex.Matches(内容、模式);
var list=matchList.Cast().Select(match=>match.Value.ToList();
private static int[] GetPhoneNumber(int phoneLength = 7)
{
List<int> phoneNumbers = new List<int>();
while (true)
{
EditorFor("Phone", String.Concat(phoneNumbers), phoneLength);
var key = Console.ReadKey(intercept: true);
if (key.Key == ConsoleKey.Escape)
return new int[0]; // return empty array if user cancelled input
var c = key.KeyChar;
if (!Char.IsDigit(c))
continue;
phoneNumbers.Add(Int32.Parse(c.ToString()));
if (phoneNumbers.Count == phoneLength)
{
EditorFor("Phone", String.Concat(phoneNumbers), phoneLength);
return phoneNumbers.ToArray();
}
}
}
private static void EditorFor(string label, string value, int length)
{
Console.SetCursorPosition(0, Console.CursorTop);
Console.Write(new String(' ', Console.WindowWidth));
Console.SetCursorPosition(0, Console.CursorTop);
int charactersLeftToInput = length - value.Length;
string placeholder = new String('*', charactersLeftToInput);
Console.Write("{0}: {1}{2}", label, value, placeholder);
Console.CursorLeft -= charactersLeftToInput;
}
Console.WriteLine("Please enter the code you wish to dial.");
int[] code = GetPhoneNumber(); // if you want default length