当前位置: 代码迷 >> J2SE >> 截取字符串后半一部分
  详细解决方案

截取字符串后半一部分

热度:3157   发布时间:2013-02-25 00:00:00.0
截取字符串后半部分
需求: 有N个长度不定的字符串,如:“aabs.333”,"aac.11","111ddddd.3122"等
我现在想取出每个字符串小数点后面的部分,这个该怎么写?

------解决方案--------------------------------------------------------
大概是:
str = str.replaceAll("[^\\.]*\\.(\\d*).*", "$1");
System.out.println(str);
------解决方案--------------------------------------------------------
先对每个字符串split(".");再获取。
------解决方案--------------------------------------------------------
先对每个字符串split(".");再获取。或者正则表达式截取,。
------解决方案--------------------------------------------------------
Java code
    public static void main(String[] args) throws ParseException {        String testStr = "\"aabs.333\",\"aac.11\",\"111ddddd.3122\"";        String reg = "\"[^\\.]*\\.([^\"]+)\"";        Pattern p = Pattern.compile(reg);        Matcher matcher = p.matcher(testStr);        while (matcher.find()) {            System.out.println(matcher.group(1));        }    }
------解决方案--------------------------------------------------------
很赞!
探讨
大概是:
str = str.replaceAll("[^\\.]*\\.(\\d*).*", "$1");
System.out.println(str);

------解决方案--------------------------------------------------------
Java code
System.out.println("aabs.333".substring("aabs.333".lastIndexOf(".")+1));
------解决方案--------------------------------------------------------
只满足LZ的需求的话很简单:
Java code
    public static void main(String[] args) {        String strings[] = { "aabs.333", "aac.11", "111ddddd.3122" };        for (String str : strings) {            if (str.contains("."))                System.out.println(str.substring(str.lastIndexOf('.') + 1));        }    }
  相关解决方案