2012-10-25 218 views
0

我有一个String将一个字符串分解成三个部分不具有分隔符(JAVA)

String test = "7462356098660AE"; 

我想把它分成:

test1 = "746"; 
test2 = "2356"; 
test3 = "0986"; 
test4 = "60AE"; 

字符串的长度test会永远都是一样的。

我将如何做到这一点?

PS:我查了其他问题,但找不到合适的答案。

+2

是字符串格式总是一样的? –

+1

你有没有尝试java.lang.String.substring()? –

+0

你的规则分裂这个字符串是什么?因为我们可以使用不同的规则在许多部分分割一个字符串... – logoff

回答

5
String test = "7462356098660AE"; 
String test1 = test.substring(0,3); 
String test2 = test.substring(3,7); 
String test3 = test.substring(7,11); 
String test4 = test.substring(11,15); 
+0

由于他似乎是一名初学者程序员,所以OP可能会从该方法的解释中受益匪浅,而不仅仅是为他编写代码。 :) – asteri

+0

我不知道的substring()方法。这帮助了我。非常感谢。 – Mike

1

如果字符串对于所有字段都是固定宽度,则可以使用String的substring/subSequence方法,或者可以创建正则表达式并获取捕获组的值。

2

不确定你的用例在这里,但如果代码的子串总是相同的长度,你可以使用substring() method。你只需要给它所需的子串的开始和结束索引。

+0

我不知道substring()方法。这帮助了我。非常感谢。 – Mike

4

为了方便,你可以写这种分离器类:

public class Splitter { 
    private final int[] borders; 
    private final String s; 
    public Splitter(String s, int... borders) { 
    this.s = s; 
    this.borders = borders; 
    } 
    public String seg(int seg) { 
    return s.substring(seg == 0? 0 : borders[seg-1], borders[seg]); 
    } 
} 

你会使用这样的:

final Splitter splitter = new Splitter("7462356098660AE", 3, 7, 11, 15); 
for (int i = 0; i < 4; i++) System.out.println(splitter.seg(i)); 
相关问题