提取 EditText 中 2 个字符之间的数值 android
Extract numeric values between 2 characters in EditText android
我在 EditText 中显示了食品价格列表,那么如何遍历它们并提取所有价格?例如,在这里我想提取 : 和 L 之间的价格。
我正在尝试使用 StringTokenizer 但不知道如何使用它...
试试这个
StringTokenizer tokenizer = new StringTokenizer(string, ":L");
while (tokenizer.hasMoreTokens()) {
try {
int price = Integer.parseInt(tokenizer.nextToken());
} catch (NumberFormatException e) {
continue;
}
}
使用正则表达式尝试以下操作:
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;
}
我在 EditText 中显示了食品价格列表,那么如何遍历它们并提取所有价格?例如,在这里我想提取 : 和 L 之间的价格。
我正在尝试使用 StringTokenizer 但不知道如何使用它...
试试这个
StringTokenizer tokenizer = new StringTokenizer(string, ":L");
while (tokenizer.hasMoreTokens()) {
try {
int price = Integer.parseInt(tokenizer.nextToken());
} catch (NumberFormatException e) {
continue;
}
}
使用正则表达式尝试以下操作:
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;
}