Java中的子串数组

时间:2013-05-01 19:55:11

标签: java string

我有一个场景,我有一串数字

String Lastnum = "123456789500020"

预期结果firstnum = 1234567895 secnum = 00020 00030 00040 我需要把它分成两个字符串:

  1. 首先收集10位数字和
  2. 秒秒号。
  3. 这里的问题是第二个数字总是动态的,不确定它是否带有两位数或五位数,第二个数字应该是字符串数组,如果你能让我知道如何处理代码那么感谢吗?

    for (int i=0; i<Lastnum.length();i++)
    {
        String ponum = Lastnum.substring(0,10);
        String[] item = Lastnum.substring(11, (Lastnum -ponum));
    }
    

4 个答案:

答案 0 :(得分:2)

如果String的第二部分看起来像secnum,即用空格分隔,你可以这样做:

String ponum = lastnum.substring(0,10);
String[] item = lastnum.substring(10).split(" ");

我不确定你为什么添加for循环,它只是重复相同的计算序列lastnum.length()次。

另外,请注意我将变量lastnum更改为以小写字母开头,以符合Java的命名约定。

答案 1 :(得分:1)

关于秒号的部分并不完全清楚。动态是什么意思?

反正 怎么样:

String ponum = Lastnum.substring(0,10);
String sec = Lastnum.substring(10);

首先? 我不明白为什么你需要一个字符串数组秒。第一项中的字符串应该是什么?什么在第二个?

答案 2 :(得分:1)

String Lastnum = "123456789500020"
String firstNumber = Lastnum.substring(0,10);
String secondNumber = Lastnum.substring(10, Lastnum.length());

上面的代码将从索引0开始抓取字符串中的前10个(0 ... 9)字符,并将其分配给“firstNumber”。然后它将获取其余的字符,索引(10 ... Lastnum -1的长度)。

如果您输入的内容如下:String Lastnum =“123456789500020 00030 00040” 并希望返回前10位[1234567895],以及其余数字的数组(用空格表示)

String Lastnum = "123456789500020 00030 00040";
String ponum = Lastnum.substring(0,10);
String[] remainingNumbers= Lastnum.substring(10, Lastnum.length()).split(" ");

这基本上与第一个结果完全相同,但是更进一步用空格分割字符串的结尾

结果将是

ponum="1234567895"
remainingNumbers={"00020", "00030", "00040"}

在任何一种情况下,都没有理由循环遍历字符串......

答案 3 :(得分:1)

我认为你试图无限地打印secnum,并在每个成员之间添加一个空格。您可以尝试以下方法:

for(int i=0;;i++)
{
    ponum = lastnum.substring(0,10);
    item[i] = lastnum.substring(10)+" ";
}