如何在Java (Android)中将字符串(格式为"0 100 300 200")转换为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编程的初学者。
发布于 2014-05-10 22:53:54
代码基本上没问题。但是,您确实有一个bug,就是用L1初始化somelong的长度。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;
}发布于 2014-05-10 22:54:31
您的代码很好。将L1的大小更改为
L1 = tekstarray.length; 您还需要在for循环中删除=。
for (int i=0;i <L1;i++)https://stackoverflow.com/questions/23582463
复制相似问题