これは非常に頻繁に繰り返される質問ですが、私は20の他のものと同じように読んでおり、答えを見つけることができません。C#入力文字列が正しい形式でない
私は、テキストファイルを解析し、文字列が正しくない最初の行で例外を取得しようとしています。このファイルはUnityのTextAsset
に存在し、したがってfile.text
に存在します。この戻りファイルの内容はstring
です。
lines[0]
は、15
に正しく読み取られます.12行目のDebug.Log()
は、2
を返します。分割後に余分な文字は残っていません。
コード:
private void ReadFile()
{
string[] lines = Regex.Split(file.text, "\n|\r|\r\n");
Debug.Log(lines[0].Length);
int width = int.Parse(lines[0]);
int height = int.Parse(lines[1]);
tab = new int[width, height];
for (int i = 2; i < width+2; i++)
{
string[] values = Regex.Split(lines[i], "\t");
for (int j = 0; j < height; j++)
{
tab[i, j] = int.Parse(values[j]);
}
}
}
これは私が解析しようとしているファイルです。
15
15
2 0 0 3 0 0 0 2 0 0 0 3 0 0 2
0 1 0 0 0 4 0 0 0 4 0 0 0 1 0
0 0 1 0 0 0 3 0 3 0 0 0 1 0 0
3 0 0 1 0 0 0 3 0 0 0 1 0 0 3
0 4 0 0 1 0 0 0 0 0 1 0 0 0 0
0 0 3 0 0 4 0 0 0 4 0 0 0 4 0
0 0 0 0 0 0 3 0 3 0 0 0 3 0 0
2 0 0 3 0 0 0 1 0 0 0 3 0 0 2
0 0 3 0 0 0 3 0 3 0 0 0 3 0 0
0 4 0 0 0 4 0 0 0 4 0 0 0 4 0
0 0 0 0 1 0 0 0 0 0 1 0 0 0 0
3 0 0 1 0 0 0 3 0 0 0 1 0 0 3
0 0 1 0 0 0 3 0 3 0 0 0 1 0 0
0 1 0 0 0 4 0 0 0 4 0 0 0 1 0
2 0 0 0 0 0 0 2 0 0 0 0 0 0 2
#0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
# 1 - DW
# 2 - TW
# 3 - DL
# 4 - TL
そして、ここに示されている空白文字と同じファイルです:
は、これを貼り付ける方法はわからないので、これはWのスクリーンショットですord。
、どのようにファイルを読んでいますか? –
'int.Parse(lines [0] .Trim()) 'で試してください。 – Eser
@残念ながら、トリムは機能しませんでした。 – Asalas77