본문
정규표현식 기반 랜덤문자열 생성 프로그램
실험용 데이터를 생성하기 위하여 이번에 관련 프로그램을 찾으려 했으나 결국 찾지 못하여 만든 프로그램이다. dk.brics.automaton 패키지를 활용하는 Xeger 라이브러리를 사용하여 매우 간단하게 구현할 수 있었다.(유니코드를 원활히 지원한다) 또한 이들을 한데 모아 exe형태로 재구성 함으로서 윈도우 상에서 손쉽게 실행될 수 있도록 하였다. 프로그램을 실행시키면 콘솔에서 입력을 기다리며, 입력이 완료되면 result.txt에 저장한다. 중복생성은 검사하지 않는다.
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.util.Scanner;
import nl.flotsam.xeger.Xeger;
public class test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try{
System.out.println("Type the regular expression:");
String regex = scanner.nextLine();
Xeger generator = new Xeger(regex);
System.out.println("Type the number of entries you want to generate:");
int num = Integer.parseInt(scanner.nextLine());
BufferedWriter writer = new BufferedWriter(new FileWriter("result.txt"));
int i=-1;
String gen=null;
while(++i<num){
gen=generator.generate();
writer.append(gen+"\r\n");
}
writer.flush();
writer.close();
System.out.println("Last entry : "+gen);
System.out.println(i+" entries generated and written in result.txt!");
}catch(Exception e){
e.printStackTrace();
System.err.println("Error occured!");
}
}
}
import java.io.FileWriter;
import java.util.Scanner;
import nl.flotsam.xeger.Xeger;
public class test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try{
System.out.println("Type the regular expression:");
String regex = scanner.nextLine();
Xeger generator = new Xeger(regex);
System.out.println("Type the number of entries you want to generate:");
int num = Integer.parseInt(scanner.nextLine());
BufferedWriter writer = new BufferedWriter(new FileWriter("result.txt"));
int i=-1;
String gen=null;
while(++i<num){
gen=generator.generate();
writer.append(gen+"\r\n");
}
writer.flush();
writer.close();
System.out.println("Last entry : "+gen);
System.out.println(i+" entries generated and written in result.txt!");
}catch(Exception e){
e.printStackTrace();
System.err.println("Error occured!");
}
}
}
댓글