在Java中无法使用IndexOf时,如何从2个特定点中选择字符串的一部分

在Java中无法使用IndexOf时,如何从2个特定点中选择字符串的一部分,java,string,Java,String,我正在为一个学校项目编写一个程序,其中我从一个文本文件中创建了一个数组和同义词,通过创建一个名为Word的对象来存储单词及其同义词,然后创建一个名为WordArray的类 WordArray从文本文件中获取单词及其同义词,并将它们作为单词对象存储在数组中 然后我有一个名为Search()的方法,其中一个参数用于查找部分匹配该参数的所有单词 例如:如果参数为rep,则该方法将返回单词pressed和representation),或者返回一个与参数完全相同的单词。如果有多个单词与参数匹配,则该方法

我正在为一个学校项目编写一个程序,其中我从一个文本文件中创建了一个
数组和同义词,通过创建一个名为Word的对象来存储单词及其同义词,然后创建一个名为
WordArray
的类

WordArray
从文本文件中获取单词及其同义词,并将它们作为单词对象存储在
数组中

然后我有一个名为
Search()
的方法,其中一个参数用于查找部分匹配该参数的所有单词

例如:如果参数为rep,则该方法将返回单词pressed和representation),或者返回一个与参数完全相同的单词。如果有多个单词与参数匹配,则该方法将包括一个数字(从1开始),并将该数字放在单词之前

现在我需要在我的主类中有一些代码,它接受
WordArray
(a)并基于用户输入的
字符串执行
Search()
方法

然后,我向用户显示根据输入找到的单词

如果只返回一个单词,如果有更多单词,则将其存储为单词字符串;我要求用户输入一个与
字符串列表
中单词前面包含的数字相对应的数字

我的问题是,我想将该单词存储在单词字符串中,最后一行代码显示了我到目前为止所做的工作。但我希望采用这种格式:

word=list.substring(list.indexOf(j),*单词结尾后的字符*)

问题是,我不能确定如何做到这一点,因为我不能使用L<代码> ASTIXOX或<代码>索引> <代码>,因为<强>字可能在多个单词的列表中间,在这种情况下,它将不能工作< /强>。 我可以使用字符串方法吗?

到目前为止,我的代码如下:

String temp = JOptionPane.showInputDialog("Input a word or part of one:");
   String list = a.Search(temp);
   String word = "";
   System.out.println(list);
   if (list.charAt(0) != '1')
   {
       word = list;
   }
   else
   {
     String j = JOptionPane.showInputDialog("Type the number of the word you'd like:");
     word = list.substring(list.indexOf(j));
   }  

此处没有验证,假设
列表
包含以下内容:

String temp = JOptionPane.showInputDialog("Input a word or part of one:"); //pp
String list = a.Search(temp);
System.out.println(list); //"1Apple 2Application"
String input = "";
if(list.contains(" ")) //more than one word ???
{
    input = JOptionPane.showInputDialog("Type the number of the word you'd like:");
}
String number = input;
String result = Arrays.asList(list.split(" ")).stream()
    .filter(e -> e.startsWith(number))
    .findFirst()
    .get(); 
System.out.println(result); //1Apple || 2Application

如果
Search
返回一个匹配的
列表或
字符串[]
,而不是一个你必须分开的
字符串,不是会容易得多吗?找到的单词在您的
Word
数组中是分开的,所以为什么要麻烦地将它们拼凑成
String
,而只需立即将它们重新拼凑成单独的单词,然后将它们呈现给用户呢?
substring()
方法会给出“来自两个特定点的字符串部分”。不清楚您在问什么。我认为您的问题不在于操作字符串的可用方法,而在于设计问题。如果我理解正确,您需要确保单词字符串存储正确的单词,而不是一组单词?如果我错了,请纠正我,并在假设你有一组特定的单词时详细解释你想要的输出。举一个更清楚的例子,String[]是一个很好的想法,在任务的前一部分,他们阐述了我如何创建Search()方法,这一点非常具体,但我会尝试看看是否可以合并一个数组,因为这肯定会让事情变得更简单。我要解释的是,我试图从列表中提取用户选择的单词,并将其存储为word。不要以大写字母开始命名方法。在几毫秒的时间里,人们就会明白这是一个方法而不是类名,其中一半人已经放弃了你的问题。