是否有整数的string.IsNullOrWhiteSpace版本?
问题描述:
我对C#和编程一般都很陌生,我花了几个小时试图修复我的基本程序。我有4个变量,我要求用户输入3个变量,并留下一个空的变量。该程序对空白进行计算,但问题是我无法使用IsNullOrWhiteSpace作为整数。是否有整数的string.IsNullOrWhiteSpace版本?
Console.WriteLine("ilk aracın hızını giriniz");
int v1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("ikinci aracın hızını giriniz");
int v2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("yolun uzunluğunu giriniz");
int x = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("karşılaşma sürelerini giriniz");
int t = Convert.ToInt32(Console.ReadLine());
if (string.IsNullOrWhiteSpace(v1))
{
v1 = x/t - v2;
Console.WriteLine(v1);
}
else if (string.IsNullOrWhiteSpace(v2))
{
v2 = x/t - v1;
Console.WriteLine(v2);
}
else if (string.IsNullOrWhiteSpace(t))
{
t = x/(v1 + v2);
Console.WriteLine(t);
}
else if (string.IsNullOrWhiteSpace(x))
{
x = (v1 + v2) * t;
Console.WriteLine(x);
}
` 有没有办法解决这个问题?如果是这样如何?
答
对于int
s,没有相应的IsNullOrWhiteSpace
,因为int
总是代表一个数字。
我要求用户输入3个,并留下一个空的。
一种方法是让用户输入string
s上行,直到那一刻,当你准备使用它的整数形式:
Console.WriteLine("ilk aracın hızını giriniz");
string sv1 = Console.ReadLine();
使用IsNullOrWhiteSpace
上sv1
,sv2
,sx
,st
,然后在if
声明内转换:
if (string.IsNullOrWhiteSpace(s1)) {
v1 = Convert.ToInt32(sx)/Convert.ToInt32(st) - Convert.ToInt32(sv2);
Console.WriteLine(v1);
}
请注意,这是inte ger分割,所以x
除以t
的任何分数结果都被截断。
另一种方法是在所有四个值使用TryParse
,避免IsNullOrWhitespace
干脆:
Console.WriteLine("ilk aracın hızını giriniz");
bool missingV1 = !int.TryParse(Console.ReadLine(), out var v1);
Console.WriteLine("ikinci aracın hızını giriniz");
bool missingV2 = !int.TryParse(Console.ReadLine(), out var v2);
Console.WriteLine("yolun uzunluğunu giriniz");
bool missingX = !int.TryParse(Console.ReadLine(), out var x);
Console.WriteLine("karşılaşma sürelerini giriniz");
bool missingT = !int.TryParse(Console.ReadLine(), out var t);
if (missingV1) {
v1 = x/t - v2;
Console.WriteLine(v1);
} else if (missingV2) {
...
}
+0
... int不知道任何空格作为字符串:o) –
可空INT''INT尝试 –
双N;? bool isNumeric = Int.TryParse(“5”,out n); – Sujatha
为什么不对源字符串执行'IsNullOrWhitespace()'而不是立即(并且没有任何验证)将它们转换为'int'? –