是否有整数的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); 
} 

` 有没有办法解决这个问题?如果是这样如何?

+3

可空INT''INT尝试 –

+0

双N;? bool isNumeric = Int.TryParse(“5”,out n); – Sujatha

+0

为什么不对源字符串执行'IsNullOrWhitespace()'而不是立即(并且没有任何验证)将它们转换为'int'? –

对于int s,没有相应的IsNullOrWhiteSpace,因为int总是代表一个数字。

我要求用户输入3个,并留下一个空的。

一种方法是让用户输入string s上行,直到那一刻,当你准备使用它的整数形式:

Console.WriteLine("ilk aracın hızını giriniz"); 
string sv1 = Console.ReadLine(); 

使用IsNullOrWhiteSpacesv1sv2sxst,然后在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) –