我有一个 ListView,它显示我的数据库表中的某些信息。我想做的是从 ListView 项目中获取一些信息,或者准确地说从字符串中提取数字。看起来像这样:
String xyz = lv.getItemAtPosition(position).toString();
会给我这样的东西:
"NumberOne: "+someNumberFromTable1+"\n"+"NumberTwo: "+someNumberFromTable2
或者它在ListView中的显示方式:
NumberOne: someNumberFromTable1
NumberTwo: someStringFromTable2
在这种情况下,我有什么方法可以仅从此字符串中提取“someNumberFromTable1”吗?
最佳答案
考虑使用正则表达式来匹配数字组。这里有一个小程序向您展示如何操作。
import java.util.regex.*;
class Scratch
{
public static void main(String args[])
{
String xyz = "NumberOne: 264\nNumberTwo: someStringFromTable2";
Pattern pattern = Pattern.compile("(?<=NumberOne: )([0-9]+)");
Matcher matcher = pattern.matcher(xyz);
int foundNumber = 0;
if (matcher.find()) {
foundNumber = Integer.parseInt(matcher.group());
}
System.out.println(foundNumber);
}
}
正则表达式模式(?<=NumberOne: )([0-9]+)
首先使用所谓的后视 (?<=NumberOne: )
仅匹配前面带有字符串“NumberOne:”的内容,然后指定查找一组一个或多个数字 ([0-9]+)
.
输出:
264
关于java - 从 ListView 中获取字符串的单个部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28935263/