从列表视图中获取字符串的一部分

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