从列表视图中获取字符串的一部分
Getting a single part of string from listview
我有这个 ListView,它显示我的数据库 table 中的某些信息。我想要做的是从 ListView 项目中取回一些信息,或者准确地说是从字符串中提取一个数字。看起来像这样:
String xyz = lv.getItemAtPosition(position).toString();
会给我这样的东西:
"NumberOne: "+someNumberFromTable1+"\n"+"NumberTwo: "+someNumberFromTable2
或者它在 ListView 中的显示方式:
NumberOne: someNumberFromTable1
NumberTwo: someStringFromTable2
在这种情况下,我有什么方法可以从这个字符串中仅提取 "someNumberFromTable1" 吗?
尝试使用 String
对象的 split
方法。例如
String str = "Number one: 12345789";
String num = str.split(": ")[1];
考虑使用正则表达式来匹配数字组。下面是一个小程序,向您展示如何操作。
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
我有这个 ListView,它显示我的数据库 table 中的某些信息。我想要做的是从 ListView 项目中取回一些信息,或者准确地说是从字符串中提取一个数字。看起来像这样:
String xyz = lv.getItemAtPosition(position).toString();
会给我这样的东西:
"NumberOne: "+someNumberFromTable1+"\n"+"NumberTwo: "+someNumberFromTable2
或者它在 ListView 中的显示方式:
NumberOne: someNumberFromTable1
NumberTwo: someStringFromTable2
在这种情况下,我有什么方法可以从这个字符串中仅提取 "someNumberFromTable1" 吗?
尝试使用 String
对象的 split
方法。例如
String str = "Number one: 12345789";
String num = str.split(": ")[1];
考虑使用正则表达式来匹配数字组。下面是一个小程序,向您展示如何操作。
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