Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在EditText android中提取两个字符之间的数值_Android_Stringtokenizer - Fatal编程技术网

在EditText android中提取两个字符之间的数值

在EditText android中提取两个字符之间的数值,android,stringtokenizer,Android,Stringtokenizer,我在编辑文本中显示了食品价格列表,那么我如何迭代它们并提取所有价格?例如,这里我想提取:和L之间的价格 我试图使用StringTokenizer,但不知道如何使用它 试试这个 StringTokenizer tokenizer = new StringTokenizer(string, ":L"); while (tokenizer.hasMoreTokens()) { try { int price = Integer.parseInt(tokenizer.nextTo

我在编辑文本中显示了食品价格列表,那么我如何迭代它们并提取所有价格?例如,这里我想提取:和L之间的价格

我试图使用StringTokenizer,但不知道如何使用它

试试这个

StringTokenizer tokenizer = new StringTokenizer(string, ":L");
while (tokenizer.hasMoreTokens()) {
    try {
        int price = Integer.parseInt(tokenizer.nextToken());
    } catch (NumberFormatException e) {
        continue;
    }
}

使用regex尝试以下操作:

final String s = "Price:1500L.L";
final Pattern p = Pattern.compile(":.*?L");
final Matcher m = p.matcher(s);
if (m.find()) {
    final String result = m.group().subSequence(1, m.group().length() - 1).toString();
    //result = 1500
}

我用Java测试了一些代码。这可能会有帮助

private static int getSum(String test) {
    String[] res1 = test.replace("Price:", "-").replace("L.L", "-").split("-");
    int sum = 0;
    for (String s : res1) {
        try {
            sum += Integer.valueOf(s);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    return sum;
}

只需使用一个正则表达式就可以去掉除数字以外的所有字符。你能给我代码吗?你可以轻松地用谷歌搜索。谢谢…希望你能给出我的问题+1