Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-合并两组代码_Java_Arrays_Regex_List - Fatal编程技术网

Java-合并两组代码

Java-合并两组代码,java,arrays,regex,list,Java,Arrays,Regex,List,我已经编写了两段独立的代码。现在我想合并这两段代码。现在,一部分打开文本文件并显示文本文件的内容,第二部分代码验证手动输入的邮政编码。现在我想读取一个文本文件,然后自动验证文本文件中的邮政编码。我不知道如何合并它们。有什么问题请问我,因为我卡住了 package postcodesort; import java.util.*; import java.util.Random; import java.util.Queue; import java.util.TreeSet; import j

我已经编写了两段独立的代码。现在我想合并这两段代码。现在,一部分打开文本文件并显示文本文件的内容,第二部分代码验证手动输入的邮政编码。现在我想读取一个文本文件,然后自动验证文本文件中的邮政编码。我不知道如何合并它们。有什么问题请问我,因为我卡住了

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
  }
}
包裹邮政编码排序;
导入java.util.*;
导入java.util.Random;
导入java.util.Queue;
导入java.util.TreeSet;
导入java.io.File;
导入java.io.BufferedReader;
导入java.io.FileNotFoundException;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.LinkedList;
导入java.util.StringTokenizer;
公共类邮政编码
{
Queue postcodeStack=new LinkedList();
公共静态void main(字符串[]args)引发IOException
{
FileReader FileReader=null;
//创建FileReader对象
试一试{
fileReader=新的fileReader(“postcodes1.txt”);
BufferedReader br=新的BufferedReader(文件读取器);
字符串str;
而((str=br.readLine())!=null)
{
System.out.println(str+“”);
}
} 
捕获(IOEX异常)
{
//处理异常;
} 
最后
{
fileReader.close();
}
//关闭输入
}
}
手动验证邮政编码的第二部分:

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());
}
List zips=new ArrayList();
//有效邮政编码
拉链。添加(“SW1W 0NY”);
zips.add(“PO16 7GZ”);
zips.add(“GU16 7HF”);
拉链。添加(“L1 8JQ”);
//无效的邮政编码
拉链。添加(“Z1A 0B1”);
拉链。添加(“A1A 0B11”);
字符串regex=“^[A-Z]{1,2}[0-9R][0-9A-Z]?[0-9][ABD-HJLNP-UW-Z]{2}$”;
Pattern=Pattern.compile(regex);
适用于(拉链:拉链)
{
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();
        }
    }
包裹邮政编码排序;
导入java.util.*;
导入java.util.Random;
导入java.util.Queue;
导入java.util.TreeSet;
导入java.io.File;
导入java.io.BufferedReader;
导入java.io.FileNotFoundException;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.LinkedList;
导入java.util.StringTokenizer;
公共类邮政编码
{
Queue postcodeStack=new LinkedList();
公共静态void main(字符串[]args)引发IOException
{
FileReader FileReader=null;
ZipCodeValidator ZipCodeValidator=新ZipCodeValidator();
//创建FileReader对象
试一试{
fileReader=新的fileReader(“postcodes1.txt”);
BufferedReader br=新的BufferedReader(文件读取器);
字符串str;
而((str=br.readLine())!=null)
{
if(zipCodeValidator.isValid(str)){
System.out.println(str+“有效”);
}
否则{
System.out.println(str+“无效”);
}
}
}
捕获(IOEX异常)
{
//处理异常;
}
最后
{
fileReader.close();
}
}
}
公共类ZipCodeValidator{
私有静态字符串regex=“^[A-Z]{1,2}[0-9R][0-9A-Z]?[0-9][ABD-HJLNP-UW-Z]{2}$”;
私有静态模式=Pattern.compile(regex);
公共布尔值isValid(字符串zipCode){
Matcher-Matcher=pattern.Matcher(zip);
返回matcher.matches();
}
}

尝试更具体地回答问题,并解释您所面临问题的背景,以便其他人能够解决您的问题。我还发现您的代码片段中有许多不必要的代码。比如
stringinputfilename=“postcodes1.txt”如果您直接给出文件名,那么上面的语句有什么用?文件中有什么?是否有第二段中的邮政编码?没有足够的信息回答您的问题。这两段代码是在两个单独的类中还是仅在一个类中?它们在同一个包中吗?合并不应该是您的目标,而是将第二个代码片段提取到ZipCodeValidator类中。