程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> io流-求幫忙理解一個JAVA程序,該程序的功能是將次行塊風格的代碼轉換成行尾塊

io流-求幫忙理解一個JAVA程序,該程序的功能是將次行塊風格的代碼轉換成行尾塊

編輯:編程綜合問答
求幫忙理解一個JAVA程序,該程序的功能是將次行塊風格的代碼轉換成行尾塊

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)
這種效果了。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved