-1

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

String Lastnum = "123456789500020"

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

  1. 首先用于收集 10 位数字和
  2. 秒数。

这里的问题是第二个数字总是动态的,不确定它是两位数还是五位数字,如果你能让我知道如何处理代码,第二个数字应该是字符串数组吗?

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

4 回答 4

2

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

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

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

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

于 2013-05-01T19:57:34.837 回答
1

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

无论如何,怎么样:

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

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

于 2013-05-01T20:02:57.107 回答
1
String Lastnum = "123456789500020"
String firstNumber = Lastnum.substring(0,10);
String secondNumber = Lastnum.substring(10, Lastnum.length());

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

如果您得到如下输入: 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"}

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

于 2013-05-01T20:06:27.373 回答
1

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

for(int i=0;;i++)
{
    ponum = lastnum.substring(0,10);
    item[i] = lastnum.substring(10)+" ";
}
于 2013-05-01T20:28:07.260 回答