从listview获取单个字符串部分

时间:2015-03-09 04:29:01

标签: java android string android-listview

我有这个ListView,它显示我的数据库表中的某些信息。我要做的是从ListView项中获取一些信息,或者从字符串中精确提取一个数字。看起来像这样:

String xyz = lv.getItemAtPosition(position).toString();

会给我这样的东西:

"NumberOne: "+someNumberFromTable1+"\n"+"NumberTwo: "+someNumberFromTable2

或它在ListView中的显示方式:

NumberOne: someNumberFromTable1
NumberTwo:  someStringFromTable2

在这种情况下,有什么方法可以从这个字符串中提取“someNumberFromTable1”吗?

2 个答案:

答案 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