1

、、、high/lowの 3 つの異なる形式になる可能性のある入力値を分割する必要があります。 120/50120//50120

これを 2 つの異なる変数に分割し、取得した値を確認したいと思います。

var high = input.Split('/').First();
var low = input.Split('/').Last();

if (high.Length > 0) //Do this
if (low.Length > 0) //Do that  

問題は、最後の 2 つの入力で、 と の両方highで同じ値が得られることlowです。つまり、値が高いか低いかがわからないということです。

ここで分割を使用できないのではないかと疑い始めていますか?

EDIT
まったくない値があるようです/。これらの値は、値として解釈する必要がありhighます。

4

3 に答える 3

1

あなたが使用することができNullablesTryParseどちらがより安全ですか:

string[] parts = input.Split('/');
int? high = null;
int? low = null;
int hightest, lowtest;
if(int.TryParse(parts[0], out hightest))
    high = hightest;
if(int.TryParse(parts[1], out lowtest))
    low = lowtest;

HasValueプロパティで設定されているかどうかを確認できます。次に例を示します。

if(high.HasValue)
{
    int val = high.Value;
    // do something with it
}
于 2012-12-05T15:10:57.520 に答える
0

試す

var values = input.Split(new []{'/'}, StringSplitOptions.None);

None がデフォルトだと思っていましたが、空のエントリが削除されないようにするためです。

編集

区切り文字が欠落している場合は、次のことができます

string high;
string low;
var values = input.Split('/');
high = values[0];
if(input.Length == 2)
{
    low = values[1];
}

また、split によって返された項目が 2 つ以上あるかどうかをチェックして、1 つ以上の入力をキャッチすることもできます/

于 2012-12-05T15:23:04.540 に答える
0
string[] values = input.Split('/');
if(values[0] != string.Empty)
 //do this
if(values[1] != string.Empty)
 //do that
于 2012-12-05T15:07:18.543 に答える