我有这个ListView,它显示我的数据库表中的某些信息。我要做的是从ListView项中获取一些信息,或者从字符串中精确提取一个数字。看起来像这样:
String xyz = lv.getItemAtPosition(position).toString();
会给我这样的东西:
"NumberOne: "+someNumberFromTable1+"\n"+"NumberTwo: "+someNumberFromTable2
或它在ListView中的显示方式:
NumberOne: someNumberFromTable1
NumberTwo: someStringFromTable2
在这种情况下,有什么方法可以从这个字符串中提取“someNumberFromTable1”吗?
答案 0 :(得分:0)
尝试使用split
对象的String
方法。实施例
String str = "Number one: 12345789";
String num = str.split(": ")[1];
答案 1 :(得分:0)
考虑使用正则表达式来匹配数字组。这是一个小程序,向您展示如何。
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