我正在尝试从字符串中提取值。
字符串:“亚马逊* APPSTORE.FX费率和费用适用。”;
从上面的文字中我只想提取:亚马逊* APPSTORE
所以我尝试了以下内容:
Log.e(“transaction”,“value”+ gettext(str));
public static String gettext(String stringtext)
{
return stringtext.substring(stringtext.lastIndexOf("at")+2, stringtext.lastIndexOf(".")).trim() ;
}
但我得到的结果如下:
es and charges are applicable
它是从费率开始并打印其他字符串而不是第一个“at”的字符串?
为什么?
答案 0 :(得分:2)
使用indexOf()
代替lastIndexOf()
了解详细信息,请查看http://www.java-samples.com/showtutorial.php?tutorialid=225
stringtext.substring(stringtext.indexOf("at")+2, stringtext.indexOf(".")).trim())
答案 1 :(得分:1)
lastIndexOf()查找字符串中子字符串的 last 次出现。所以它找到" at" in" rate"。同样适用于"。"
请参阅http://www.java-samples.com/showtutorial.php?tutorialid=225
对于您的示例,您可以简单地使用indexOf()。甚至更具体的东西,如:
return stringtext.substring(stringtext.indexOf("at Amazon")+2, stringtext.indexOf(".FX")).trim() ;