在Java中如何将字符串(“0 100 300 200”)转换为长数组?

在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(" ");

在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;
    }
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”:)谢谢!我的应用程序现在运行正常。