簡體   English   中英

Java-合並兩組代碼

[英]Java - Merging two sets of code

我已經編寫了兩個單獨的代碼段。 現在,我想合並這兩段代碼。 現在,一部分打開一個文本文件並顯示該文本文件的內容,第二段代碼驗證手動輸入的郵政編碼。 現在,我想讀取一個文本文件,然后自動驗證該文本文件中的郵政編碼。 不知道如何合並它們。 有任何問題,請問我被卡住了。

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());
}

您應該創建一個名為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);

通過@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();
        }
    }

暫無
暫無

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

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