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

时间:2014-05-10 14:48:44

标签: java arrays string

如何将字符串(此形式:“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编程的初学者。

2 个答案:

答案 0 :(得分:1)

代码基本上没问题。 但是,您遇到的一个问题是使用somelong初始化L1的长度。 L1tekst中的字符数,因此这会导致数组末尾出现一堆无意的零。正确的大小与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++)