假设一个主字符串类似于: "最后的价格是三星(100.59),诺基亚(35.23),苹果(199.34)和#34;。 有没有通过发送名称从这个String中提取值的方法?
public Double getValue(String name);
所以getValue(" Nokia")将返回35.23,getValue(Apple)将返回199.34。
答案 0 :(得分:2)
以下是适合您案例的内容
public static void main(String[] args) {
String s = "The last prices are Samsung(100.59), Nokia(35.23), Apple(199.34)";
System.out.println(getValue(s, "Samsung"));
System.out.println(getValue(s, "Nokia"));
System.out.println(getValue(s, "Apple"));
}
private static String getValue(String text, String valueOf) {
int fromIndex = text.indexOf(valueOf);
int start = text.indexOf("(", fromIndex);
int end = text.indexOf(")", fromIndex);
return text.substring(start + 1, end);
}
答案 1 :(得分:2)
您可以使用正则表达式执行此操作
public Double getValue(String name){
Pattern p = Pattern.compile("(?<=" + name + "\\()\\d+\\.\\d+(?=\\))");
Matcher m = p.matcher("<your matcher string>");
m.find();
return Double.parseDouble(m.group());
}