免责声明,我已经在java工作了大约一个月。我完全迷失了。我试图让用户输入一个短语,如果在该数组中找到该短语中的任何字符串,它会在一行中返回相应的字符串。如果找不到字符串,它就会跳过它。
所以如果有人输入"狗吃我的鱼"
并且数组成立: 狗佩罗 吃完了 鱼黄鳟鱼
它将返回: 穿着黄色鳟鱼
我还没有编写代码来打印出我已经得到的内容,但我知道这段代码不起作用。
任何帮助将不胜感激。
import java.io.*;
import java.util.*;
public class ArrayTest2 {
public static void main(String[] args)
throws java.io.IOException {
Scanner input = new Scanner(System.in);
String userString = " ";
userString = englishString();
String[][] wordList = new String[10][2];
loadEnglishString(wordList);
}
public static String englishString() {
Scanner input = new Scanner(System.in);
String s1 = " ";
System.out.println("Please enter a phrase to translate: ");
s1 = input.nextLine().trim().toUpperCase();
return s1;
}
public static void loadEnglishString(String[][] wordList)
throws java.io.IOException {
String filName = " ";
filName = ("/home/chrism/ArrayTest2.txt");
Scanner input = new Scanner(new File(filName));
while(input.hasNextLine()) {
String line = input.nextLine();
StringTokenizer st = new StringTokenizer(line);
while (st.hasMoreTokens()) {
boolean stop = false;
for(int i = 0; i < wordList.length; i++) {
if(stop)
break;
for(int j = 0; j < wordList[i].length; j++)
if(input.hasNextLine())
wordList[i][j] = input.nextLine();
else {
stop = true;
}
break;
}
}
}
input.close();
}
}
答案 0 :(得分:0)
您肯定想要更改for
循环。括号是你的朋友。
for(int i = 0; i < wordList.length; i++) {
if(stop)
break;
for(int j = 0; j < wordList[i].length; j++) {
if(input.hasNextLine())
wordList[i][j] = input.nextLine();
else {
stop = true;
}
}
}
你拥有它的方式,两个增量都注册为死代码,因为你的第二次中断总是第一次调用循环,并且你的else
注册为与第一个if(stop)
一起注册。
编辑:不确定其他人会如何结合,但是在第一次运行之后肯定会打破这个中断。
答案 1 :(得分:0)
// package com.myjava.stokenizerr;
import java.util.StringTokenizer;
public class MyStringTokenizer {
public static void main(String a[]){
/* your code for user input string */
/* assume input as dog eat my fish */
String input = "dog eat my fish";
String msg = "dog perro eat munched fish yellow trout";
StringTokenizer st1 = new StringTokenizer(msg," ");
StringTokenizer st2 = new StringTokenizer(input," ");
while(st1.hasMoreTokens()){
System.out.println(st1.nextToken()); // Store this one(first) string array
}
while(st2.hasMoreTokens()) {
System.out.println(st2.nextToken()); // Store in another(second) array
}
/* Now Compare both the arrays */
/* If the strings are equal then remove string from second array */\
/* If equal just skip it */
}
}
请参阅上面的代码st1.nextToken(),st2.Tokens()将为您提供值 比较采取两个循环
for(i==0;i<array1length();i++) {
for(j==0;j<array2length();j++) {
// Your code for comparsion
}
}