String.replaceAll(string,string)方法提供了expexxted输出

时间:2016-06-07 06:27:43

标签: java android string string-conversion

我有一些金额作为输入,如:

Rs1,  INR10,954.00,  INR 45000,  INR 25000.70,  25000卢比,  1000卢比,  卢比。 14000  这些是我正在使用的输入格式

    String getRuppee="Rs1"; // this string can not get the format and gives wrong output.

    String val=getRuppee.toLowerCase()
                    .replaceAll(",", "")
                    .replaceAll("rs.", "")
                    .replaceAll("\"rs\"", "")
                    .replaceAll("rs", "")
                    .replaceAll("inr", "")
                    .replaceAll("inr ", "")
                    .replaceAll("mrp", "")
                    .replaceAll(" ", "");

除非是第一个(Rs1),否则我按照上面的输入得到输出。

Log.e("Converstion", "Converstion Balance."
                +getRuppee.toLowerCase().

                replaceAll("rs.", ""));

我需要输出1,但它给我null。

Logcat显示:“06-07 11:34:48.438:E / Converstion(8233):Converstion Balance。”

3 个答案:

答案 0 :(得分:2)

这是你的问题

.replaceAll("rs.", "")

由于replaceAll正在基于regexp进行替换,因此这将替换以rs开头的任何内容,后跟任何char

尝试使用.replace替换所有字符串

答案 1 :(得分:2)

按如下方式更改您的代码

String getRuppee="Rs1"; // this string can not get the format and gives wrong output.

String val=getRuppee.toLowerCase()
                .replace(",", "")
                .replace("rs.", "")
                .replace("\"rs\"", "")
                .replace("rs", "")
                .replace("inr", "")
                .replace("inr ", "")
                .replace("mrp", "")
                .replace(" ", "");

答案 2 :(得分:0)

尝试以下代码:

String[] getRuppee = {"RS1", "INR10","954.00" , "INR 45000" , "INR 25000.70" , "Rs.25000" , "Rs.1,000" , "Rs. 14000"};

         for (String tmp : getRuppee){
            String val=tmp.toLowerCase()
                            .replaceAll(",", "")
                            .replaceAll("rs\\.", "")  //check here
                            .replaceAll("\"rs\"", "")
                            .replaceAll("rs", "")
                            .replaceAll("inr", "")
                            .replaceAll("inr ", "")
                            .replaceAll("mrp", "")
                            .replaceAll(" ", "");
            System.out.println(val);
         }