2016-01-15 2 views
0

Я написал два отдельных фрагмента кода. Теперь я хочу объединить обе части кода. Теперь одна часть открывает текстовый файл и отображает содержимое текстового файла, а вторая часть кода проверяет введенные вручную почтовые индексы. Теперь я хочу прочитать текстовый файл и затем автоматически проверять почтовые индексы в текстовом файле. Не знаю, как я могу объединить их. Любые вопросы, пожалуйста, спросите, как я застрял.Java - Объединение двух наборов кода

package postcodesort; 

import java.util.*; 
import java.util.Random; 
import java.util.Queue; 
import java.util.TreeSet; 
import java.io.File; 
import java.io.BufferedReader; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.LinkedList; 
import java.util.StringTokenizer; 


public class PostCodeSort 
{ 
    Queue<String> postcodeStack = new LinkedList<String>(); 

    public static void main(String[] args) throws IOException 
    { 
    FileReader fileReader = null; 

    // Create the FileReader object 
    try { 
     fileReader = new FileReader("postcodes1.txt"); 
     BufferedReader br = new BufferedReader(fileReader); 
     String str; 

     while((str = br.readLine()) != null) 
     { 
     System.out.println(str + ""); 
     } 
    } 
    catch (IOException ex) 
    { 
     // handle exception; 
    } 
    finally 
    { 
     fileReader.close(); 
    } 

    // Close the input 
    } 
} 

Вторая часть, которая вручную проверяет почтовые индексы:

List<String> zips = new ArrayList<String>(); 

//Valid ZIP codes 
zips.add("SW1W 0NY"); 
zips.add("PO16 7GZ"); 
zips.add("GU16 7HF"); 
zips.add("L1 8JQ"); 

//Invalid ZIP codes 
zips.add("Z1A 0B1"); 
zips.add("A1A 0B11"); 

String regex = "^[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][ABD-HJLNP-UW-Z]{2}$"; 

Pattern pattern = Pattern.compile(regex); 

for (String zip : zips) 
{ 
    Matcher matcher = pattern.matcher(zip); 
    System.out.println(matcher.matches()); 
} 
+0

Попробуйте более конкретно задать вопрос и объяснить контекст проблемы, с которой вы сталкиваетесь, чтобы другие могли решить вашу проблему. –

+0

Я также нашел много ненужного кода в вашем фрагменте. например 'String inputFileName =" postcodes1.txt ";', если вы прямо указываете имя файла, что является использованием вышеприведенного утверждения? –

+0

что у вас есть в файле? Есть ли у вас почтовые индексы, которые у вас есть во втором фрагменте? –

ответ

0

Вы должны создать класс под названием что-то вроде ZipCodeValidator, который содержит функциональность вашего второго фрагмента. Это будет выглядеть примерно так

public class ZipCodeValidator { 
    private static String regex = "^[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][ABD-HJLNP-UW-Z]{2}$"; 
    private static Pattern pattern = Pattern.compile(regex); 

    public boolean isValid(String zipCode) { 
     Matcher matcher = pattern.matcher(zip); 
     return matcher.matches(); 
    } 
} 

Затем вы можете создать экземпляр этого класса

ZipCodeValidator zipCodeValidator = new ZipCodeValidator(); 

, а затем использовать его в основной метод

boolean valid = zipCodeValidator.isValid(zipCode); 
0

Слияния Ваш вопрос и ответ by @hiflyer Я опубликовал этот ответ, это делает предположение, что файл postcodes1.txt имеет все почтовые индексы в отдельных строках.

package postcodesort; 


    import java.util.*; 
    import java.util.Random; 
    import java.util.Queue; 
    import java.util.TreeSet; 
    import java.io.File; 
    import java.io.BufferedReader; 
    import java.io.FileNotFoundException; 
    import java.io.FileReader; 
    import java.io.IOException; 
    import java.util.LinkedList; 
    import java.util.StringTokenizer; 


    public class PostCodeSort 
    { 
     Queue<String> postcodeStack = new LinkedList<String>(); 

     public static void main(String[] args) throws IOException 
     { 
      FileReader fileReader = null; 
      ZipCodeValidator zipCodeValidator = new ZipCodeValidator(); 

      // Create the FileReader object 
      try { 
       fileReader = new FileReader("postcodes1.txt"); 
       BufferedReader br = new BufferedReader(fileReader); 

       String str; 
       while((str = br.readLine()) != null) 
       { 
        if(zipCodeValidator.isValid(str)){ 
         System.out.println(str + " is valid"); 
        } 
        else{ 
         System.out.println(str + " is not valid"); 
        } 
       } 
      } 
      catch (IOException ex) 
      { 
       // handle exception; 
      } 

      finally 
      { 
       fileReader.close(); 
      } 

     } 
    } 

    public class ZipCodeValidator { 
     private static String regex = "^[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][ABD-HJLNP-UW-Z]{2}$"; 
     private static Pattern pattern = Pattern.compile(regex); 

     public boolean isValid(String zipCode) { 
      Matcher matcher = pattern.matcher(zip); 
      return matcher.matches(); 
     } 
    } 
Смежные вопросы