我需要获取具有以下数据的String,例如:hello (world)
。我的计划是,我将让程序将单个字母添加到另一个字符串,并测试第二个字符串并查看它是否(。然后,如果它,它将开始将字母添加到第三个字符串,直到它找到)。这是我的想法,如何将括号中的任何内容转换为其他String。问题是,我不知道该怎么做。我仍然是Java的新手,我不知道你可以用Strings做很多更高级的事情。因此,如果任何人有任何想法,或者教程解释一些可以帮助我的代码,我们将不胜感激。
答案 0 :(得分:2)
这可以使用String类中的indexOf()
和substring()
方法完成。
String s = "Hello (world)";
String s2 = s.substring(s.indexOf('(')+1, s.indexOf(')'));
s2
的值现在应为world
。
答案 1 :(得分:0)
利用String.indexOf(int ch, int fromIndex)
和String.substring(int beginIndex, int endIndex)
功能。
使用int i = string.indexOf("(")
读取第一个索引,然后使用此索引查找)
括号:
int i = string.indexOf("(");
int j = string.indexof(")", i+1);
String target = string.substring(i+1, j);
答案 2 :(得分:0)
String.indexOf("(");
将返回(
的第一次出现的索引。
如果您拥有的数据总是如此,那么您可以使用substring()来接收所需的字符串,因为数据以)
结尾。
String s = "hello (world)";
String wanted = s.substring(s.indexOf("("), s.length);
应该诀窍。
答案 3 :(得分:0)
您可以在String类here上找到文档。这应该足以帮助您找出可用的内容,但如果您需要一些帮助方法,请考虑使用Apache Common Lang StringUtils进行添加。
答案 4 :(得分:0)
可能想使用正则表达式:
String myString = "Hello (world)";
Pattern pattern = Pattern.compile("\\((.*)\\)");
Matcher matcher = pattern.matcher(myString);
if (matcher.find()) {
String newString = matcher.group(1);
System.out.println(newString);
}
这将打印“世界”。
您可以在Internet上获得有关如何在Java中使用Regex的许多示例:http://www.tutorialspoint.com/java/java_regular_expressions.htm