是这样的:我要处理[1,2,22.4,34,44.8,55.2] 这样一个格式的字符串。我要得到其中有整数也有小数,都以逗号为分隔符。 我的思路是这样的 通过一个正则式 regex 先将其分割成包含这些数的子字符串再转成浮点型数据。 现在问题是:这个分割用的regex 该怎么写呢??
String regex = "\\D+";// 正则表达式 ,以所有非数字字符为分隔符
String digitWord[] = s.split(regex)
我这个regex 匹配出来的全是数字,小数点也给过滤掉了 ···· 急,哪位高手指点指点 先谢谢了!
好
追答写好了,你可以用我写的matcher方法,处理你的字符串,这个方法返回一个String数组。
把下面的代码复制到你的程序中就能用了。
private static Pattern pattern = Pattern.compile("\\d+(\\.\\d+)?");
public static String[] matcher(String input) {
Matcher matcher = pattern.matcher(input);
List list = new ArrayList();
while (matcher.find()) {
list.add(matcher.group());
}
return list.toArray(new String[0]);
}
或者你也可以用这个方法。
String[] digitWord = "[1,2,22.4,34,44.8,55.2]".substring(1).split("[^\\d\\.]");
你测试过了吗? 我贴上去就这行报错 List list = new ArrayList();提示:
type List does not take parameters
你还是用这个方法吧
String[] digitWord = "[1,2,22.4,34,44.8,55.2]".substring(1).split("[^\\d\\.]");
当然测试过了才发的。
是不是你导入错误。
直接用我那个思路可以吗? 不想大改程序
追答以所有非数字字符为分隔符---这个确实有点不好搞,得到的数据不能判断哪个是小数位,哪个是整数位啊。