我想在给定的字符串中获取下一个字符,因为每当重复该字时,字符串的下一个字符应该打印,让我们说多达6个字符来获取给定单词后面的所需字符串。
实施例。岩石
我试过这个,但没有得到所需的输出。
String example = "Hi man check rock,let's go on together to the sight of rock now Print upto 6 char";
System.out.println(example.substring(example.indexOf("rock") + 5));
答案 0 :(得分:3)
您可以使用子字符串选择开头和结尾。试试这个:
int stringindex = example.indexOf("rock"); //Save the index to a variable so you don't have to call the indexOf method twice.
int stringlength = "rock".length();
example.substring(stringindex + stringlength, stringindex + stringlength + 5); //Select next 5 characters from the index of rock.
答案 1 :(得分:1)
解决方案:假设只打印字符而不打印字符,并将空格计为
字符串示例="嗨,男人检查摇滚,让我们一起去看看摇滚吧打印到6个字符&#34 ;;
Ans:System.out.println(Str.substring(Str.lastIndexOf(" rock")+" rock" .length(),Str.lastIndexOf("岩石&#34)+"岩石"。长度()+ 6));
输出:现在为P(总共六个字符,计算2个空格和4个字符)。
请告知我任何改进
更新
请查看以下代码: 代码最初捕获第一个索引并循环遍历其他出现的字符串,并在循环中构建结果字符串。
import java.io.*;
public class Test {
public static void main(String args[]) {
String Str = "Hi man check rock,let's go on together to the sight of rock now Print upto 6 char";
String keyword = "rock";
String result="";
int index = Str.indexOf(keyword);
while (index >=0){
System.out.println("Index : "+index);
result+=Str.substring(index+keyword.length(),index+keyword.length()+6);
index = Str.indexOf(keyword, index+keyword.length()) ;
}
System.out.println(result);
}
}
答案 2 :(得分:0)
String example = "Hi man check rock,let's go on together to the sight of rock now Print upto 6 char";
System.out.println(example.substring(example.indexOf("rock")+4, example.indexOf("rock") + 11));
答案 3 :(得分:0)
使用正则表达式获取特定字符串(例如:rock)之后的下一个字符串/单词
String stringToSearch = "Hi man check rock,let's go on together to the sight of rock now rock again Print upto 6 char";
Pattern p1 = Pattern.compile("rock[,\\s][\\w]+");
Matcher m = p1.matcher(stringToSearch);
Pattern p2 = Pattern.compile("[,\\s]");
while (m.find())
{
String[] items = p2.split(m.group());
if(items.length < 2 )
break;
System.out.println(items[1]);
}
Otuput: 让 现在 再次