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编码支持不好,所以将你的竖线使用“|”代替了,这个在正规表达式中又是特殊字符,需要转移,因此只要将上述表达式中的“\\|”换成你的竖线就可以了 帮忙把这段C#加密算法代码转换成JAVA 关于static的问题 你是对日软件开发者吗? 如何自动执行 一个简单问题,关于生成jar iterator()的作用? 怎样才能用好构造函数? 关于异常的一个问题,求高手。。 菜鸟级问题!! Java大神安排一下 高分求算法:求树中节点数 有使用过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编码支持不好,所以将你的竖线使用“|”代替了,这个在正规表达式中又是特殊字符,需要转移,因此只要将上述表达式中的“\\|”换成你的竖线就可以了