2012-10-25 274 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)); 
相關問題