簡體   English   中英

Java從文件中讀取單詞,並詢問它是否是一個字謎

[英]Java read words from file, and ask if it is an anagram

我正在嘗試用Java創建一個代碼,該代碼將從anagram.txt文件中讀取兩個單詞,然后查看這兩個單詞是否為anagram。 我收到錯誤java.lang.NullPointerException 我不確定自己在做什么錯,有什么建議嗎? 我猜想o2.Anagram()需要有一些變量,但是我希望它從txt文件中調用Strings ...我是一個初學者,所以請不要嘲笑我:)謝謝!

這是一個從txt文件讀取的類:

import java.io.File;
import java.util.Scanner;

public class Klasa {

 public Scanner x;
 String s1;
 String s2;

 public void openFile(){
     try{
     x = new Scanner(new File("C:\\anagram.txt"));
     }
     catch(Exception e){
         System.out.println("Error");
     }
 }

 public void readFile(){
     while (x.hasNext()){
         String s1 = x.next();
         String s2 = x.next();           
     }
 }

 public void closeFile(){
     x.close();
 }   
}

這是一個類,應該比較anagram.txt兩個單詞,看看它們是否是字謎:

import java.util.*;
import java.io.*;

public class isAnagram extends Klasa{

public void Anagram(){

     boolean status = true;

     if(s1.length() != s2.length()){
         status = false;
     }
     else{
         char[] s1Array = s1.toLowerCase().toCharArray();
         char[] s2Array = s2.toLowerCase().toCharArray();

         Arrays.sort(s1Array);
         Arrays.sort(s2Array);

         status = Arrays.equals(s1Array, s2Array);
     }           
           //Output          
            if(status)
            {
                System.out.println(s1+" and "+s2+" are anagrams");
            }
            else
            {
                System.out.println(s1+" and "+s2+" are not anagrams");
            }
     }
 }

這是主類:

    public class mainClass{

     public static void main(String[] args){            

        Klasa o1 = new Klasa();     
        o1.openFile();
        o1.readFile();      
        o1.closeFile();

        isAnagram o2 = new isAnagram();         
        o2.Anagram();        
    }       
  }

不要使用Scanner打開文件,而應使用FileReader / FileWriter類打開和編輯文件,然后使用Scanner類從文件中讀取文本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM