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类中。