Regular Expression 正则表达式-2 (Java)

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

又用Java实现了一个,发现Java的正则表达式略有不同,而且也感觉到了Java的读写文件很不雅观。

/*

* Created on 2004-10-1

*/

import java.util.regex.*;

import java.io.*;

/**

* @author dancefire

*/

public class DataFilter {

public static void main(String[] args) {

if(args.length < 2)

{

System.err.println("Please enter 2 filenames(e.g. In.txt Out.txt)");

return;

}

String strIn = null, strOut = null;

// Get string from a file

strIn = readFile(args[0]);

// Process

strOut = filter(strIn);

// Store Result into a file

writeFile(args[1], strOut);

}

private static void writeFile(String filename, String data)

{

BufferedWriter wr = null;

try{

wr = new BufferedWriter( new FileWriter(filename));

wr.write(data);

}catch( Exception e )

{

e.printStackTrace();

}finally{

try{

if( wr != null )

wr.close();

}catch( Exception e ){

e.printStackTrace();

}

}

return;

}

private static String readFile(String filename)

{

String strRet = null;

BufferedReader rd = null;

try{

rd = new BufferedReader( new FileReader(filename));

String line = null;

StringBuffer sb = new StringBuffer();

while( (line=rd.readLine()) != null )

{

sb.append(line);

}

strRet = sb.toString();

}catch( Exception e )

{

e.printStackTrace();

}finally{

try{

if( rd != null )

rd.close();

}catch( Exception e ){

e.printStackTrace();

}

}

return strRet;

}

private static String filter(String input)

{

Pattern p = Pattern.compile("\"(\\w+):(\\w+)%(\\w+)\"");

Matcher m = p.matcher(input);

StringBuffer sb = new StringBuffer();

while(m.find())

{

sb.append( m.group(1) + ":" + m.group(2) + "*" + m.group(3) + "," + System.getProperty("line.separator") );

}

return sb.toString();

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航