我如何将列表的大节点分段到另一个列表的一些较小节点?

时间:2011-12-31 12:31:32

标签: java

我在链表节点中有这个号码。它是27位数:980089673400089200098129823

我需要一种方法在新列表(节点中的每4个数字)中将其分段如下:

27 - > 9800 - > 8967 - > 3400-> 0892 - > 0009 - > 8129 - > 823

3 个答案:

答案 0 :(得分:1)

1)将数字转换为字符串。

2)将字符串的长度除以4.(不要硬编码4,配置它)

3)找到许多子集字符串并将它们插入新列表中。

非常简单,我希望你不是在找人为你编码。 希望它有所帮助。

String str = String.valueOf(<your integer>);
int strLength = str.length();
int subStrCount = strLength/4;
List newList = new LinkedList();
for(int i=0;i<subStrCount;i++){
newList.add(str.subsctring(i*0, (i+1)*4));
}
newList.add(subStrCount*4, strLength);

答案 1 :(得分:0)

这段代码可以解决问题:

for (int i = 0; i*4 < str.length(); i++) {

            if (((i * 4 + 4) >= str.length())) {
                System.out.println(str.substring(i * 4, 27));
            } else {
                System.out.println(str.substring(i * 4, i * 4 + 4));
            }
        }

如果需要转换为int使用:

int n = Integer.parseInt("123");

答案 2 :(得分:0)

String s = node.value();
int [] numbers = s.length%4 ? s.length/4 : s.length/4 + 1;
for (int i=0; i<numbers.length; ++i) {
    numbers[i] = Integer.parseToInt(s.substring(i*4, 4));
}

return numbers;

数字将包含所有数字