日期:2014-05-20  浏览次数:20857 次

截取字符串后半部分
需求: 有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));
        }
    }