JAVA如何处理连续分隔符?请高人指点 String strTemp = "aa|bb|cc|dd||ee||f|g";如何分割为aabbccdd||ee||fg 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String s;s.replaceall(" ¦ ¦ ","~");//替换为其他字符String[] ss = s.split(" ¦ ");//切割for(String s : ss){ s.replaceall("~", " ¦ ¦ ")} 非常感谢这样不行啊 主要是有连续分隔符||?输出结果ss[0]==aa|bb|cc|dd||ee||f|g 方法1,处理完成后拼字串 public static void main(String[] args) { String strTemp = "aa |bb |cc |dd ||ee ||f |g"; String[] ss = strTemp.split(" \\|"); ArrayList<String> list = new ArrayList<String>(); for (int i = 0; i < ss.length; i++) if (ss[i].startsWith("|")) { list.set(list.size() - 1, list.get(list.size() - 1) + ss[i]); } else list.add(ss[i]); System.out.println(list); }方法2,临时替换 public static void main(String[] args) { String strTemp = "aa |bb |cc |dd ||ee ||f |g"; strTemp = strTemp.replaceAll("\\|\\|", "~"); String[] ss = strTemp.split(" \\|"); for (int i = 0; i < ss.length; i++){ ss[i] = ss[i].replace("~", "||"); } } 你这个问题需要用到正规表达式的lookaround特性String test = "aa |bb |cc |dd | |ee | |f |g"; String [] res = test.split("(?<! \\|) \\|(?! \\|)"); for (int i=0;i<res.length;i++){ System.out.println(res[i]); }由于我的IDE对GBK编码支持不好,所以将你的竖线使用“|”代替了,这个在正规表达式中又是特殊字符,需要转移,因此只要将上述表达式中的“\\|”换成你的竖线就可以了 对一串字符串进行进行替换,如何完成,请大家帮助 用JAVA如何实现对软件的自动升级 如何在textarea中保存格式?????? 急问怎么在面板上绘制的直线上添加鼠标响应 100分!!请问java中怎么实现这个table控件,真正的高手请进,有一定难度! why it's wrong 时间运算怎么搞? 请教,如何动态创建组件对象。送分! 给我一个理由,为什么要用LDAP? Java远程调用的合法类型(legal types for Java RMI)都有哪些? 高分求算法:求树中节点数 有使用过JMX实时修改wblogic连接池密码的么?
String s;
s.replaceall(" ¦ ¦ ","~");//替换为其他字符
String[] ss = s.split(" ¦ ");//切割
for(String s : ss){
s.replaceall("~", " ¦ ¦ ")
}
输出结果ss[0]==aa|bb|cc|dd||ee||f|g
String strTemp = "aa |bb |cc |dd ||ee ||f |g";
String[] ss = strTemp.split(" \\|");
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < ss.length; i++)
if (ss[i].startsWith("|")) {
list.set(list.size() - 1, list.get(list.size() - 1) + ss[i]);
} else
list.add(ss[i]); System.out.println(list);
}
方法2,临时替换 public static void main(String[] args) {
String strTemp = "aa |bb |cc |dd ||ee ||f |g";
strTemp = strTemp.replaceAll("\\|\\|", "~");
String[] ss = strTemp.split(" \\|");
for (int i = 0; i < ss.length; i++){
ss[i] = ss[i].replace("~", "||");
}
}
String test = "aa |bb |cc |dd | |ee | |f |g";
String [] res = test.split("(?<! \\|) \\|(?! \\|)");
for (int i=0;i<res.length;i++){
System.out.println(res[i]);
}
由于我的IDE对GBK编码支持不好,所以将你的竖线使用“|”代替了,这个在正规表达式中又是特殊字符,需要转移,因此只要将上述表达式中的“\\|”换成你的竖线就可以了