展开全部
import java.io.RandomAccessFile;
/**
* 格式
*
*
*
*
* @author cs12110 2018年11月16日
* @see
* @since 1.0
*/
public class FormatText {
public static void main(String[] args) {
e69da5e887aa62616964757a686964616f31333366303763try {
RandomAccessFile acf = new RandomAccessFile("d://FormatText.java", "r");
String line;
boolean isComment = true;
while (null != (line = acf.readLine())) {
// 去除前后空格
// line.trim();
String noneSpaceLine = removeAllSpace(line);
// 简单的注解
if (isSimpleComment(noneSpaceLine)) {
continue;
}
// 多行注解
if (noneSpaceLine.startsWith("/*")) {
isComment = true;
}
if (isComment && noneSpaceLine.endsWith("*/")) {
isComment = false;
continue;
}
if (!isComment) {
System.out.println(noneSpaceLine);
}
}
acf.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private static boolean isSimpleComment(String line) {
if (line.startsWith("//")) {
return true;
}
return false;
}
/**
* 注意: 这里移除所有的空格,如果只想移除前后两端的,请使用: line.trim();
*
* @param line
* 行
* @return String
*/
private static String removeAllSpace(String line) {
StringBuilder b = new StringBuilder(line.length());
for (char ch : line.toCharArray()) {
int num = (int) ch;
if (num != 9 && num != 32) {
b.append(ch);
}
}
return b.toString();
}
}
测试数据为上面的java文件,测试结果如下publicclassFormatText{
publicstaticvoidmain(String[]args){
try{
RandomAccessFileacf=newRandomAccessFile("d://FormatText.java","r");
Stringline;
while(null!=(line=acf.readLine())){
StringnoneSpaceLine=removeAllSpace(line.trim());
if(isSimpleComment(noneSpaceLine)){
continue;
}
System.out.println(noneSpaceLine);
}
acf.close();
}catch(Exceptione){
e.printStackTrace();
}
}
privatestaticbooleanisSimpleComment(Stringline){
if(line.startsWith("//")){
returntrue;
}
returnfalse;
}
privatestaticStringremoveAllSpace(Stringline){
StringBuilderb=newStringBuilder(line.length());
for(charch:line.toCharArray()){
if(ch!=''){
b.append(ch);
}
}
returnb.toString();
}
}