在Java中如何将字符串(“0 100 300 200”)转换为长数组?
在Java(Android)中,如何将字符串(这种形式为:“0 100 300 200”)转换为long数组 你能看看我的密码吗在Java中如何将字符串(“0 100 300 200”)转换为长数组?,java,arrays,string,Java,Arrays,String,在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(" ");
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;
}
public long[]ConvertStringToLongArray(字符串tekst)
{
int L1=tekst.length();
long[]somelong=新长[L1];
字符串[]tekstarray=tekst.split(“”);
对于(inti=0;i而言,代码基本正常。
不过,您确实存在一个bug,即使用L1
初始化somelong
的长度L1
是tekst
中的字符数,因此这将导致数组末尾出现一堆无意的零。正确的大小将与tekstaray
的大小相同
编辑:
正如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;
}
public long[]ConvertStringToLongArray(字符串tekst)
{
字符串[]tekstarray=tekst.split(\\s+);
long[]somelong=新长[teksarray.length];
对于(int i=0;i您的代码很好。将L1的大小更改为
L1 = tekstarray.length;
您还需要删除for循环中的=
for (int i=0;i <L1;i++)
for(int i=0;i)该代码执行此操作。有什么问题吗?请务必在应用程序上解释此工作不完全是您自己的。事实上,最好按“\\s+拆分”
为了避免数字之间出现额外的空格。请将L1替换为Tekstaray。length@LuiggiMendozatru'dat.据此编辑了我的答案。谢谢!我喜欢“\\s+”的想法,并感谢“tekstaray.length”:)谢谢!我的应用程序现在运行正常。