(f新格式化 Java 源代碣)编写一个程序,将 Java 源代码的次行块风格转换成行尾块风格。例 如,图 a 中的 Java 源代码使用的是次行块风格。程序将它转换成图 b 中所示的行尾块形式。
// 将java源代码的次行块风格转换成尾行块风格(没有验证文件有没有创建,args的长度之类的) import java.util.Scanner; import java.io.*; public class LineEndingOfSecondaryLine { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); ArrayList<Integer> listInt = new ArrayList<>(); File file = new File(args[0]); Scanner input = new Scanner(file); int a = 0; while (input.hasNext()) { // 将java源代码储以行为分隔存到列表list中 String s = input.nextLine(); list.add(s); int num = s.indexOf("{"); if (num != -1) { // 找到{ 将其在列表中所在的下标存入listInt中,并在list中其上一行的行尾加上" {" list.set(a - 1, list.get(a - 1) + " {"); listInt.add(a); } a++; } file.renameTo(file); // 删除文件 File file1 = new File(args[0]); PrintWriter output = new PrintWriter(file1); boolean boo; int x = 0; for (int i = 0; i < a; i++) { // 重新写入,并将单独的{行去掉 boo = true; for (int j = x; j < listInt.size(); j++) { if (i == listInt.get(j)) { boo = false; x++; break; } } if (boo) { output.println(list.get(i)); } } output.close(); input.close(); } }