如何将字符串(此形式:“0 100 300 200”)转换为Java(Android)中的long数组?
你能看一下我的代码吗?
public long[] ConvertStringToLongArray(String tekst)
{
int L1 = tekst.length();
long[] somelong = new long[L1];
String[] tekstarray = tekst.split(" ");
for (int i=0;i<=L1;i++)
{
somelong[i] = Long.parseLong(tekstarray[i]);
}
return somelong;
}
这是学校社区信息应用的一部分。
我是Java编程的初学者。
答案 0 :(得分:1)
代码基本上没问题。
但是,您遇到的一个问题是使用somelong
初始化L1
的长度。 L1
是tekst
中的字符数,因此这会导致数组末尾出现一堆无意的零。正确的大小与tekstarray
的大小相同。
修改强>
正如Luiggi Mendoza评论的那样,按"\\s+"
而不是" "
进行拆分可以解决任何问题,并且该数字由多个空格分隔。
public long[] ConvertStringToLongArray(String tekst)
{
String[] tekstarray = tekst.split("\\s+");
long[] somelong = new long[teksarray.length];
for (int i = 0; i <= somelong.length; i++)
{
somelong[i] = Long.parseLong(tekstarray[i]);
}
return somelong;
}
答案 1 :(得分:0)
你的代码很好。将L1的大小更改为
L1 = tekstarray.length;
您还需要在for循环中删除=。
for (int i=0;i <L1;i++)