1. 程式人生 > >java程式碼註釋翻譯

java程式碼註釋翻譯


import java.io.File;
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.List;
import 谷歌例項.GoogleLanguage;
import 谷歌例項.GoogleTranslater;
import 谷歌例項.Translater;


public class 翻譯註釋
{
	static String 目標資料夾 = "E:/item/git/bateman/src/main/java/org/wkh/bateman/pso1";
	public static void main(String[] args)
	{
		翻譯註釋.讀取資料夾();
	}
	public static void 讀取資料夾()
	{
		try
		{
			Files.walkFileTree(Paths.get(目標資料夾), new SimpleFileVisitor<Path>()
			{
				@Override
				public FileVisitResult visitFile(Path 本檔案, BasicFileAttributes attrs) throws IOException
				{
					if (本檔案.toString().endsWith(".java"))
					{
						new Thread(new 檔案處理(本檔案.toFile())).start();
					}
					return FileVisitResult.CONTINUE;
				}
			});
		} catch (IOException e)
		{
			e.printStackTrace();
		}
	}
}

class 檔案處理 implements Runnable
{
	File file;
	static Translater translater = new GoogleTranslater();
	public 檔案處理(File file_1)
	{
		file = file_1;
	}
	@Override
	public void run()
	{
		try
		{
			檔案裝入list(file);
		} catch (IOException e)
		{
			e.printStackTrace();
		}
	}
	public static void 檔案裝入list(File file) throws IOException
	{
		Path fileUrl = Paths.get(file.getAbsolutePath());
		List<String> lines = Files.readAllLines(fileUrl);
		StringBuffer 塊內容 = new StringBuffer();
		boolean 有塊內容 = false;
		int 塊內容行數 = 0;
		for (int num = 0; num < lines.size(); num++)
		{
			String 行內容 = lines.get(num);
			String 行內容去空白=行內容.trim();
			if (行內容去空白.indexOf("/*") >= 0  && (行內容去空白.indexOf("*/") >= 0))// &&  行內容去空白.indexOf("/*") <(行內容去空白.indexOf("*/"))
			{//一行塊註釋
				String[] 行內容陣列=行內容.split("/\\*");
				有塊內容 = false;// 這裡直接呼叫翻譯
				塊內容行數 = 0;
				String 翻譯後行內容 = translater.translate(行內容陣列[1], GoogleLanguage.ENGLISH.toString(), GoogleLanguage.CHINESE_SIMPLIFIED.toString());
				lines.set(num, 行內容陣列[0]+"   /*"+翻譯後行內容.replaceAll("/ \\*", "/\\*").replaceAll("\\* /", "\\*/").replaceAll(" \\*", "\n\\*"));
			}else if(行內容去空白.indexOf("//")==0)//整行註釋
			{
				String 翻譯後行內容 = translater.translate(行內容, GoogleLanguage.ENGLISH.toString(), GoogleLanguage.CHINESE_SIMPLIFIED.toString());
				lines.set(num, 翻譯後行內容.replaceAll("/ ", "/"));				
			}else if(行內容去空白.indexOf("//")>0)//行尾註釋
			{
				String[] 行內容陣列=行內容.split("//");
				String 翻譯後行內容 = translater.translate(行內容陣列[1], GoogleLanguage.ENGLISH.toString(), GoogleLanguage.CHINESE_SIMPLIFIED.toString());
				lines.set(num, 行內容陣列[0]+"   //"+翻譯後行內容.replaceAll("/ ", "/"));
			}else if (行內容去空白.indexOf("/*") == 0)
			{
					有塊內容 = true;
					塊內容行數++;
					塊內容.append(行內容 + "\n");
			}else
			{
				if (有塊內容)
				{
					塊內容行數++;
					塊內容.append(行內容 + "\n");
					if (行內容.indexOf("*/") >= 0)
					{
						String 翻譯後行內容 = translater.translate(塊內容.toString(), GoogleLanguage.ENGLISH.toString(), GoogleLanguage.CHINESE_SIMPLIFIED.toString());
						for (int i = 0; i < 塊內容行數; i++)
						{
							lines.set(num - 塊內容行數 + i,"");// +1
						}
						lines.set(num,翻譯後行內容.replaceAll("/ \\*", "/\\*").replaceAll("\\* /", "\\*/").replaceAll("\\* /", "\\*/").replaceAll(" \\*", "\n\\*"));
						塊內容 = new StringBuffer();
						有塊內容 = false;
						塊內容行數 = 0;
					}
				}
			}
		}
		Files.write(fileUrl, lines);
	}
}

翻譯後註釋部分的格式會亂,不過可以手工進行整理。

翻譯後的檔案直接覆蓋了原檔案,以防萬一請先對原資料夾進行備份。

相關推薦

java程式碼註釋翻譯

import java.io.File; import java.io.IOException; import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.

Idea-Java程式碼註釋規範

  IDEA自帶的註釋模板不是太好用,我本人到網上搜集了很多資料系統的整理了一下製作了一份比較完整的模板來分享給大家(如果嫌配置繁瑣,可以在本頁面最下方下載jar包,匯入idea,就可以了)。 一、首先我們來設定IDEA中類的模板:(IDEA中在建立類時會自動給添加註釋)

解決eclipse中java程式碼註釋變成亂碼的問題

Eclipse JAVA檔案註釋亂碼將別人的專案或JAVA檔案匯入到自己的Eclipse中時,常常會出現JAVA檔案的中文註釋變成亂碼的情況,主要原因就是別人的IDE編碼格式和自己的Eclipse編碼格式不同。 總結網上的建議和自己的體會,可以參考以下幾種解決方式: 1 改變整個檔案型別的編碼格式

Java程式碼註釋TODO FIXME XXX的意義

TODO: 說明: 如果程式碼中有該標識,說明在標識處有功能程式碼待編寫,待實現的功能在說明中會簡略說明。 表示需要實現,但目前還未實現的功能FIXME: 說明: 如果程式碼中有該標識,說明標識處程式

JAVA程式碼註釋模板

首先,先建一個空的XML檔案,然後將以下的程式碼複製進去!下面的註釋中包括了日常中使用頻繁的程式碼註釋模版!模板裡面的名字,版本等等資訊需要修改為自己的資訊! <?xml version="1.0" encoding="UTF-8"?><templa

MyEclipse設定Java程式碼註釋模板

定義自己喜歡的模板註釋 選中你要加註釋的方法或類,按 Alt + shift + J。   檔案 (Files)註釋標籤: /**    * @Title:

4.Java程式碼註釋

轉載請保留原文連結: http://dashidan.com/article/java/basic/4.html 註釋也叫做註解.程式設計師寫出的程式碼一方面是讓計算機讀懂並執行,另一方面是

Eclipse中如何修改Java程式碼註釋的樣式和如何提取出註釋文件

摘要   習慣寫註釋不一定代表技術強,但是一個習慣寫註釋的程式設計師一定是個好程式設計師,至少寫的程式碼美觀,有益於後期維護。程式碼其實就是一種藝術品,如果有裝飾的註釋,那簡直就是美上加美,讓人賞析悅目。   我們都知道eclipse中可以快捷的為類,方法和

java程式碼註釋規範(二)

一、背景  1、當我們第一次接觸某段程式碼,但又被要求在極短的時間內有效地分析這段程式碼,我們需要什麼樣的註釋資訊?  2、怎麼樣避免我們的註釋冗長而且凌亂不堪呢?  3、在多人協同開發、維護的今天,我們需要怎麼樣的註釋來保證高質、高交的進行開發和維護工作呢?  二、意義

{@link}與@see的簡單使用以及區別--如何寫好Java程式碼註釋

寫程式碼的時候,有時候,你需要寫一些註釋,把內容相互關聯起來,方便自己或別人看的時候,可以直接找到你關聯的程式碼類或者啥的。 這個時候,{@link}與@see,這2個javadoc註解就派上用場了,

瞭解下Java程式碼註釋

Java的程式碼註釋作用: 1)、解釋程式中某些部分的作用和功能,提高程式的可讀性。 2)、可以使用註釋暫時遮蔽某些語句,在程式除錯時使用。 註釋的形式: 1)、單行註釋 intc=10;//定義一個整型 2)、多行註釋 /* intc=10;//定義一個整型 intx=5; */ 注意

刪除 java程式碼中所有的註釋

刪除 java程式碼中所有的註釋.java public class CleanCommons { private static Pattern pattern = Pattern.compile("/\\*.+?\\*/", Pattern.DOTALL); public stati

刪除Java程式碼中的所有註釋

//String s = target.replaceAll("\\/\\/[^\\n]*|\\/\\*([^\\*^\\/]*|[\\*^\\/*]*|[^\\**\\/]*)*\\*\\/", ""); //本段正則摘自網上,有一種情況無法滿足(/* ...**/),略作修改

intellij idea 2017.3 新建JAVA類不自動新增模板程式碼註釋的解決方案

前陣子重灌了系統,不得不重新下一遍idea,但是這次新建了.java檔案之後居然是空白的檔案,之前會加一些自動生成的註釋什麼的。 網上找了一下無果只能自己搞了。 原因:程式碼模板中File Header內容莫名其妙清空了?? 解決方案:把本來應該在裡面的東西再手動寫回

Java&Android程式碼註釋規範

一、註釋及簡介     1、鄙人寫的一些程式碼中,雖說有註釋,但都是一些不符合規則的註釋,即便拿出來查閱,也要花很一些時間才能搞懂程式的流程。為了良好的程式設計風格,我特意學習了java的文件註釋,也分享給大家,良好的程式設計風格確實很重要,不可忽略···     2、說一

程式碼註釋規範-IDEA 配置 Java 類方法註釋模板

1. 引言     團隊開發時,業務模組分配的越清晰,程式碼註釋管理越完善,越有利於後面維護,後面再管理也方便不少。另外也起著"文字磚"的作用,你懂的。註釋不需要很詳細,把程式碼塊方法塊功能簡述一下就行。不然三月後回頭看就要罵人了,罵完發現是自己寫的,嘖嘖嘖...     三種常用的 Ja

IDEA外掛:快速刪除Java程式碼中的註釋

背景 有時,我們需要刪除Java原始碼中的註釋。目前有不少方法,比如: 實現狀態機。該方式較為通用,適用於多種語言(取決於狀態機支援的註釋符號)。 正則匹配。該方式容易誤判,尤其是容易誤刪字串。 利用第三方庫。該方式侷限性較強,比如不同語言可能有不同的第三方庫。 本文針對Java語言,介紹

HashMap源碼註釋翻譯

map() 允許 重建 htable post 性能比較 size rem 屬於 HashMap.java(JDK1.8) 如有錯誤翻譯的地方,歡迎評論指出。 介紹:對於HashMap及其子類而言,它們采用Hash算法來決定集合中元素的存儲位置。當系統開始初始化Ha

java 使用註釋校驗數據有效性

spa 元素 java 業務 lmin als 類庫 sequence 數據 驗證註解 驗證的數據類型 說明 空檢查 @Null 任意類型 驗證註解的元素值是null

JAVA程式碼優化5個細節

1、儘量指定類、方法的final修飾符 帶有final修飾符的類是不可派生的。在Java核心API中,有許多應用final的例子,例如java.lang.String,整個類都是final的。為類指定final修飾符可以讓類不可以被繼承,為方法指定final修飾符可以讓方法不可以被重寫。如果指定了