这是我的程序
package com.util;
public class SplitBy {
public static void main(String args[]) {
String name = "Masala Roasted with peanuts(49)";
String category_id = "";
if (!name.contains(",")) {
if (name.contains("(")) {
String[] parts = name.split("\\(");
category_id = parts[1];
System.out.println(category_id);
}
}
}
}
这样当前的输出是
49)
请告诉我如何获得结束括号并仅生成
49
答案 0 :(得分:3)
您可以在两个括号中分割String
:
String[] parts = name.split("[()]");
[()]
是一个匹配openning和closing括号的正则表达式。由于split()
正在分割String
匹配项,因此结束括号不会包含在结果值中。
因此,结尾的空字符串不包含在结果数组中。
这意味着它不会在数组末尾添加空元素。
答案 1 :(得分:2)
您可以这样做:
category_id = category_id.substring(0, category_id.length() - 1);
将删除字符串中的最后一个字符。
答案 2 :(得分:0)
您可以查找两个括号,只打印两者之间的内容:
category_id = name.substring(name.indexOf(“(”)+ 1,name.indexOf(“)”));
答案 3 :(得分:0)
检查出来
package com.util;
public class SplitBy {
public static void main(String args[]) {
String s = "";
Pattern pattern = Pattern.compile("(?<=)(\\d+)");
String EXAMPLE_TEST = "Masala Roasted with peanuts(49)";
Matcher matcher = pattern.matcher(EXAMPLE_TEST);
while (matcher.find()) {
s = matcher.group(1);
}
System.out.println(s);
}
}