java 用逗号分割字符串
Stringstr="2005a-3.pt.5";将数字和非数字用逗号隔开(不存在负数,-3为-和3的组合)分割后为"2005,a-,3,.pt.,5"...
String str="2005a-3.pt.5";
将数字和非数字用逗号隔开(不存在负数,-3为-和3的组合)
分割后为"2005,a-,3,.pt.,5" 展开
将数字和非数字用逗号隔开(不存在负数,-3为-和3的组合)
分割后为"2005,a-,3,.pt.,5" 展开
展开全部
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
String str = "2005a-3.pt.5";
Pattern p = Pattern.compile("[(\\d[^\\d])[([^\\d]\\d)][\\d][^\\d]]+");
Matcher m = p.matcher(str);
String resultStr = "";
while(m.find()) {
if(m.group().matches("\\d+\\b|[^\\d]+\\b")) {
resultStr = resultStr +m.group()+",";
}
else {
p = Pattern.compile("\\d+|[^\\d]+");
Matcher mm = p.matcher(m.group());
while(mm.find()) {
resultStr = resultStr+mm.group()+",";
}
}
}
System.out.println(resultStr.substring(0, resultStr.length()-1));
}
}
上面是用正则的,其实你可以不用正则,而是去遍历这个字符串,然后比较他们的ASCII码是不是数字。
展开全部
你可以用替换法将数字和非数字用逗号隔开,Java程序如下:
public class Z {
public static void main(String[] args) {
String str="2005a-3.pt.5";
String a=str.replaceAll("(\\D+)",",$1,");
System.out.println(a);
}
}
运行结果:
2005,a-,3,.pt.,5
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String str="2005a-3.pt.5";
String a=str.replaceAll("(\\D+)",",$1,");
System.out.println(a);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
正则匹配,或者使用ASCII码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用 charAt 去取 然后 判断取出来的字符是否在数字所在的整形对应区间
最后就是拼接数组.如果你觉得需要这个算法 就追问,上面兄弟的那些也能用
最后就是拼接数组.如果你觉得需要这个算法 就追问,上面兄弟的那些也能用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询