[英]How to Find the word that comes after a specified word in java String
我的程序输入了一个字符串,例如。 你好我是约翰你是谁哦所以我知道你也是约翰我很高兴
然后我的程序输入了一个关键字,例如。 i(程序还不喜欢大写或标点符号)
然后它读取初始字符串并找到它提到关键字+关键字后面的单词的所有时间,例如。 我是,我明白了,我是。
这就是找到最常见的出现并将第二个单词作为新关键字输出并重复。 这将产生 i am john/happy (当第二个单词出现相同时,它会停止(它意味着))
我想知道的是如何在关键字后面找到这个词。
package main;
import java.util.Scanner;
public class DeepWriterMain {
public static void main(String[] args) {
String next;
Scanner scanner = new Scanner(System.in);
System.out.println("text:");
String input = scanner.nextLine();
System.out.println("starting word:");
String start = scanner.nextLine();
input.toLowerCase();
start.toLowerCase();
if (input.contains(start)) {
System.out.println("Loading... (this is where i find the most used word after the 'start' variable)");
next = input.substring(5, 8);
System.out.println(next);
}else {
System.out.println("System has run into a problem");
}
}
}
如果使用split
将所有单词拆分成一个数组,则可以遍历数组查找关键字,如果不是数组中的最后一个,则可以打印下一个单词
String arr [] = line.split(" ");
for (int i = 0; i < arr.length -1; i++) {
if (arr[i].equalsIgnoreCase(keyword)) {
sop(arr[i] + " " arr[i + 1]);
}
String 类包含一个名为public int indexOf(String str)
的方法。 您可以按如下方式使用它:
int nIndex = input.indexOf(start) + start.length()
然后,您只需要在start
不在输入字符串中的情况下检查nIndex == -1
是否。 否则,它会为您提供后面单词的第一个字符的位置。 使用相同的indexOf
方法查找下一个空间提供了结束索引。
这将允许您避免通过输入进行线性搜索,尽管 indexOf 方法可能无论如何都会这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.