日期:2014-05-19  浏览次数:20557 次

一个字符串处理

给出一个不固定的字符串 含有数字(有会带小数点)加字母

要求分隔出来数字部分 和字母部分、

貌似要正则、不太会喔、

String str = "0.12a";

结果:
 
  0.12 a 

如果碰到数字夹字母情况

  String str = "0.12a0.12b";

结果:

 0.120.12 ab





------解决方案--------------------
Java code
System.out.println("0.12a0.12b".replaceAll("[a-z]", ""));

System.out.println("0.12a0.12b".replaceAll("[0-9]", "").replaceAll("\\.", ""));

------解决方案--------------------
也可以这样!
Java code
System.out.println("0.12a0.12b".replaceAll("[a-z]", ""));
System.out.println("0.12a0.12b".replaceAll("[^a-z]", ""));

------解决方案--------------------
把每个字节都拿出来判断ascii码也可以来区分
------解决方案--------------------
我刚才也写了一个小例子,不过没有正则表达式来的简单.

Java code
public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String number = ".0123456789";
        String str = "0.12abc1.1";
        char[] chars = str.toCharArray();
        String numberPart = "";
        String stringPart = "";
        for(int i = 0; i < chars.length; i++) {
            char c = chars[i];
            if(number.indexOf(String.valueOf(c)) >= 0) {
                numberPart += c;
            } else {
                stringPart += c;
            }
        }
        System.out.println("===NumberPart===" + numberPart);
        System.out.println("===stringPart===" + stringPart);
    }
}