首页 > 试题广场 >

(f新格式化 Java 源代碣)编写一个程序,将 Java

[问答题]
(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();
	}
}

编辑于 2020-03-03 15:19:55 回复(0)