package exercise_9;
import java.util.*;
import java.io.*;
public class Exercise9_16 {
/**Main method*/
public static void main(String[] args) throws Exception {
// Check command line parameter usage
if (args.length != 1) {
System.out.println(
"Usage: java Exercise9_16 filename");
System.exit(0);
}
// Check if source file exists
File sourceFile = new File(args[0]);
if (!sourceFile.exists()) {
System.out.println("Source file " + args[0] + " not exist");
System.exit(0);
}
StringBuilder buffer = new StringBuilder();
Scanner input = new Scanner(sourceFile);
while (input.hasNext()) {
String s = input.nextLine();//一行行輸入
String s1 = s.trim();//把多出來的空格都刪掉
if (s1.charAt(0) == '{') {
buffer.append(" {");
if (s1.length() > 1) buffer.append("\r\n" + s.replace('{', ' '));
}
else
buffer.append("\r\n" + s);
}
input.close();
// Write buffer into the file
PrintWriter output = new PrintWriter(sourceFile);
output.print(buffer.toString());
output.close();
}
}
if (s1.charAt(0) == '{') {這一行開始就看不太懂了,求解答
比如
public void a()
{if(true)
{}
}
第一次讀入 public void a(),放入了buffer中
讀取到{if(true)時,判斷到開始是{,那麼把{放入buffer中,因為沒有回車換行,也就是拼接到了public void a()後面,成了public void a() {
然後把buffer再拼接"\r\n"換行,s.replace('{', ' ')替換到第一個{,剩下if(true)放入buffer中,這就出來結果
public void a() {
if(true)
這種效果了。