用于拆分数据行的String.split无法正常工作

Luk*_* Vo 3 .net java string newline

我使用VB.NET为我的游戏创建数据(对于Android,Java代码),它的外观如下:

5;0000000100011100010000000;2;2
5;1000001100010000000000000;0,1;0,1
Run Code Online (Sandbox Code Playgroud)

每一行都是一个级别.在VB.NET中,我通过vbNewLine常量创建新行(我认为它的ASCII码是13)然后用IO.File.WriteAllText它将它写入文件.

在我的Java游戏中,我\n用来分割级别:

String[] levelData = rawData.split("\n");
Run Code Online (Sandbox Code Playgroud)

但是,在处理整个数据时,levelData在结束后总是有一个"新行".例如,levelData [0]是5;00...2;2<new line>导致Integer.parseInt异常的.然后我调试,发现这个:

rawData.charAt(31) //It's a \r, not \n
Run Code Online (Sandbox Code Playgroud)

所以,我改变了分割线:

String[] levelData = rawData.split("\r");
Run Code Online (Sandbox Code Playgroud)

但现在,levelData [1]将是<newline>5....

我究竟需要做些什么才能解决这个问题?请解释Java String中"新行"的工作原理.

Nav*_*ved 10

我想vbNewLine常量将两个"\ r \n"放在最后,因此在分割时会留下一个字符.尝试使用两者来拆分它.