以下是一些代码,用于按in
类<{1}}类的对象Scanner
升序或降序对文件内容进行排序
public void sortFile(String fileName)throws IOException
{
FileReader fin=new FileReader("C:\\File Handling\\"+fileName+".txt");
BufferedReader bin=new BufferedReader(fin);
String[] str=new String[100];
int i=0;
while((str[i]=bin.readLine())!=null)
i++;
Comparator<String> c=Collections.reverseOrder();
System.out.println("\nIf you want to sort in descending order, enter A");
System.out.println("If you want to sort in ascending order, enter D");
System.out.println("Using any other characters or strings will produce an error and exit his method\n");
String opt=in.next();
if(opt=="A"||opt=="a")
Arrays.sort(str,0,i);
else if(opt=="D"||opt=="d")
Arrays.sort(str,0,i,c);
else
{
System.out.println("Wrong option");
main();
}
FileWriter fout=new FileWriter("C:\\File Handling\\"+fileName+".txt");
BufferedWriter bout=new BufferedWriter(fout);
PrintWriter pout=new PrintWriter(bout);
for(i=0;i<str.length;i++)
{
if(str[i]!=null)
pout.println(str[i]);
}
pout.flush();
pout.close();
}
但是在执行此代码时,无论我为变量opt
分配什么值,我总是会收到“错误选项”的消息并被重定向到main()
方法。
为什么会这样?
是否有人有任何其他建议可以在任何其他方面改进此代码?
答案 0 :(得分:1)
if(opt.equals("A")||optopt.equals("a")){...}
else if(opt.equals("D")||opt.equals("d")){...}
else{...}
String
是对象,因此等于两个字符串所需的equals
方法。