我需要帮助来分隔字符串,例如:
String trunk = "50 | 1 | 13"
/ *数据库信息(动态)* /
String[] dial_discagem = tronco.split("|");
我需要获取dial_disc信息并通过传递trunk ID来调用“getDialDiscing”函数。 GetDialDiscing将返回一个String,我必须按如下方式挂载它。
dial = "SIP/trkfixo|SIP/TESTESIP|Khomp/b0l1";
我试着这样做:
String[] dial_discagem = tronco.split("|");
String dial = "";
for(int i=0;i<dial_discagem.length;i++){
String[] innerData = dial_discagem[i].split("|");
String id = innerData[i];
dial += getDialDiscagem(Integer.parseInt(id))+"|";
}
但这会产生以下错误:
**Exception in thread "Thread-36" java.lang.ArrayIndexOutOfBoundsException: 1
at local.astman.db.CampanhaClienteChamadaDAO.getChamadasPendentes(CampanhaClienteChamadaDAO.java:303)**
答案 0 :(得分:2)
你需要一个转义字符,例如:
final String dial = "SIP/trkfixo|SIP/TESTESIP|Khomp/b0l1";
final String[] discagem = dial.split("\\|");
for (int i = 0; i < discagem.length; i++) {
System.out.println(discagem[i]);
}
答案 1 :(得分:1)
您需要先声明并定义数组,例如在循环之外。
比您必须替换所有空格而不是|
分割。
示例代码
String trunk = "50 | 1 | 13";
String temp = trunk.replaceAll("\\s+","");
String[] dial_discagem = temp.split("\\|");
String dial = "";
String[] innerData = new String[dial_discagem.length];
for(int i=0;i<dial_discagem.length;i++){
innerData[i] = dial_discagem[i];
String id = innerData[i];
dial += getDialDiscagem(Integer.parseInt(id))+"|";
}