我想写一个java代码,它读取一个有很多句子的文件,例如 -
Hey how you doing?
Hi I am fine.
Hello World, Good Morning!
要求用户输入第一个单词作为输入,输出应该是句子的其余部分。例如,如果输入的单词是“Hi”,那么输出应该是“我很好”。这是我下面的代码,我不知道是什么问题!真的需要你的帮助!谢谢!
import java.io.*;
import java.util.*;
import java.io.FileReader;
import java.io.BufferedReader;
public class FileContents {
public static void main(String args[]) {
BufferedReader br=new BufferedReader(new FileReader("myfile.txt"));
Vector lineArray=new Vector();
String lineContents=null;
int counter=0,i;
try {
while ((lineContents=br.readLine())!=null) {
lineArray.add(lineContents);
counter++;
}
} catch (FileNotFoundException fne) {
fne.printStackTrace();
} catch (IOException io) {
io.printStackTrace();
}
Scanner input = new Scanner(System.in);
int no=3;
String[] textData=new String[no];
for (i=0;i<no;i++) {
textData[i]=br.readLine();
}
br.close();
System.out.println("These are the file contents : ");
for (i=0;i<lineArray.size();i++) {
System.out.println(lineArray.get(i));
}
System.out.println("\n Enter first word of sentence : ");
String st = input.nextLine();
String[] word= st.split(" ");
System.out.println("\n Rest of the sentence is : ");
for (i=0;i<lineArray.size();i++) {
if (word[i].equals(textData[i])) {
while (word[i]!='\n')
System.out.println(word[i]);
}
}
}
}
我是初学者,所以请原谅我的错误。
以上代码输出 - 没有!没有错误,但没有输出!!
答案 0 :(得分:0)
我无法理解你在上面的代码中想要做什么(可能是我的大脑因缺乏睡眠而无法运作)但你可以做到以下几点:
String input
。StringTokenizer
并对每行进行标记。答案 1 :(得分:0)
您似乎已经关闭了输入,使用您的扫描仪类,您需要做的就是添加一个HashMap。
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/HashMap.html
有些事情,
<强>更新强>
HashMap responseMap = new HashMap();
public string genResponse(String word) {
String response = (String) responseMap.get(word);
if (response != null){
return response;
} else {
return "Word unrecognized!"
}
}
您需要使用回复填充回复地图。
更新2
这就是我重新构建你的课程的方法,我省略了代码,因为这是你的作业。
public class FileContents {
public HashMap responseMap = new HashMap();
public Vector lineArray = new Vector();
public static void main(String args[]){
//Call function to populate the map
populateResponseMap();
//Read the lines
readLines();
}
public void populateResponseMap(){
//This is where you would add responses, something like
responseMap.put("Hi", "I am fine");
}
public void readLines() {
//This is where you would read the data from the file using you scanner class
//With each line you would call this function
genResponse(//first word in line );
}
public String genResponse(String word) {
String response = (String) responseMap.get(word);
if (response != null) {
return response;
} else {
return "Word unrecognized!";
}
}
}
希望这有帮助