如何在使用Java Android后跟特定字符串后读取数字?

时间:2016-06-20 12:25:11

标签: java android string stringreader

String str = "[amt is E234.98.valid 23/12/2013.Sample text]"

如何只阅读上面的示例字符串中的金额值,该字符串接近字符“E”

2 个答案:

答案 0 :(得分:2)

您可以使用正则表达式和匹配组来提取所需内容。

代码更新:

通过致电ParseWithRegexp.testIt()

来使用
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ParseWithRegexp {
    static String str = "[amt is E234.98.valid 23/12/2013.Sample text  E134.95.valid 23/12/2015]";
    public static void testIt() {
        Pattern p = Pattern.compile("E([0-9.]+)\\.valid");
        Matcher m = p.matcher(str);
        while (m.find()) {
            System.out.println("found: "+m.group(1));
        }
    }
}

UPADTE: 您可以对regexp更严格,例如: "E([0-9]+\\.[0-9]+)"

答案 1 :(得分:0)

您可以使用indexOf()中的String方法,例如:

如果您只想要粗体字,并且您的号码中必须有一个点:

String str =" [amt is E 234.98 .valid 23/12 / 2013.Sample text]";

这样做:

String str = "whatever E2024.1.E";

///Start from the first character after "E"
int startPos = str.indexOf("E") + 1;

///Start from startPos
int dotPos = str.indexOf(".", startPos);

///Start from the first character after dotPos
int endPos = str.indexOf(".", dotPos + 1);

///return the result
return str.substring(startPos, endPos);

否则,如果您只希望第一个点之前的数字执行此操作:

String str = "whatever E2024.1.E";

///Start from the first character after "E"
int startPos = str.indexOf("E") + 1;

///Start from the first character after startPos
int endPos = str.indexOf(".", startPos+ 1);

///return the result
return str.substring(startPos, endPos);

唯一的区别是,如果你必须有一个圆点,那么你必须检查它的位置并从它开始。