在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。不要以大写字母开始命名方法。在几毫秒的时间里,人们就会明白这是一个方法而不是类名,其中一半人已经放弃了你的问题。