0
我使用String.split()
方法拆分XML元素。 XML元素的格式如下所示:拆分,修剪和分配Java中的數組元素
start:23 |停止:43 |名稱:ABC DEF
分割字符串,我想修剪和分配類似以下後:
String[] parts = oneLine.split("\\s*\\|\\s*"); // splits into 3 strings
for (int x = 0; x < parts.length; x++) {
String tmp = parts[0];
if (tmp.startsWith("start:")) {
tmp = tmp.substring("start:".length());
try {
this.begin = Integer.parseInt(tmp);
}
catch (NumberFormatException nfe) {
nfe.printStackTrace();
}
}
else {
System.err.println("Wrong format");
}
String tmp1 = parts[1];
if (tmp1.startsWith("stop:")) {
tmp1 = tmp1.substring("stop:".length());
try {
this.end = Integer.parseInt(tmp1);
}
catch (NumberFormatException nfe) {
nfe.printStackTrace();
}
}
else {
System.err.println("Wrong format"+tmp1);
}
Strint tmp2 = parts[2];
if (tmp2.startsWith("name:")) {
tmp2 = tmp2.substring("name:".length());
try {
this.name = tmp2;
}
catch (NumberFormatException nfe) {
nfe.printStackTrace();
}
}
else {
System.err.println("Wrong format"+tmp2);
}
這將返回一個錯誤Wrong format
。這是否與作業String tmp1 = parts[0]
有關?
這不回答你的問題,但沒有任何意義恕我直言。爲什麼要使用for循環,然後僅分割零件[0],零件[1]和零件[2]?你可以跳過for循環,還是我錯了? –
發佈您的完整代碼..沒有獲得使用if-else的目的? – Prateek
而不是'for'循環,你應該更好地檢查'parts.length == 3'。此外,如果您需要解析數字,則應將其添加到正則表達式中,而不是同時執行匹配和子字符串操作。 – Sebastian