⑴ java中將欄位前綴相同的部分設為一個key,將所有該前綴的欄位放入value,形成多個key-value存放到map中。
輸入流,一次讀取一行
然後直截取和拆分字元串
File file = new File("txt文件路徑");
InputStreamReader isr = new InputStreamReader(new FileInputStream(file));
BufferedReader br = new BufferedReader(isr);
String tmp = null;
while((tmp = br.readLine()) != null){
System.out.println(tmp);
}
剩下的就是你對這個tmp進行拆分
⑵ 使用Java作為程序語言時,好的命名規范有哪些
Package的命名
Package的名字應該都是由一個小寫單片語成。
Class的命名
Class的名字必須由大寫字母開頭而其他字母都小寫的單片語成
Class變數的命名
變數的名字必須用一個小寫字母開頭。後面的單詞用大寫字母開頭。
StaticFinal變數的命名
StaticFinal變數的名字應該都大寫,並且指出完整含義。
參數的命名
參數的名字必須和變數的命名規范一致。
數組的命名
數組應該總是用下面的方式來命名:
byte[]buffer;
而不是:
bytebuffer[];
方法的參數
使用有意義的參數命名,如果可能的話,使用和要賦值的欄位一樣的名字:
SetCounter(intsize){
this.size=size;
}
變數名
普通變數命名應該採用首字母小寫,其他字母首字母大寫的方式。
final static變數的名字應該都大寫,並且指出完整含義。如果一個常量名稱由多個單片語成,則應該用下劃線來分割這些單詞如。
NUM_DAYS_IN_WEEK MAX_VALU
如果需要對變數名進行縮寫時,一定要注意整個代碼中縮寫規則的一致性
context=ctx message=msg
通過在結尾處放置一個量詞,就可創建更加統一的變數
First(一組變數中的第一個) Last(一組變數中的最後一個) Next(一組變數中的下一個變數) Prev(一組變數中的上一個) Cur(一組變數中的當前變數)
無論什麼時候,均提倡應用常量取代數字、固定字元串。也就是說,程序中除0,1以外,盡量不應該出現其他數字。
索引變數:i、j、k等只作為小型循環的循環索引變數。
邏輯變數:避免用flag來命名狀態變數,用is來命名邏輯變數。
if(isClosed){ dosomeworks; return; }
數組
總是使用以下方式定義數組:
int[] arr = new int[10];
禁止使用C語言的是形式:
禁止 int arr[] = new int[10];
集合
數組或者容器推薦命名方式為名詞+s的方式,例如:
Listpersons = getPerson(); for(Person person : persons){ dosomeworks; }
泛型
應該盡量簡明扼要(最好是一個字母),以利於與普通的class或interface區分
Container中的Element應該用E表示;Map里的key用K表示,value用V;Type用T表示;異常用X表示
如果需要接收多個Type類型的參數,應該用鄰接T的大寫字母——例如S——來依次表示,當然也可以用T1, T2這樣的方式
public class HashSetextends AbstractSet{…} public class HashMapextends AbstractMap{…} public class ThreadLocal{…} public interface Functor{ T val() throws X; }
推薦的命名
1.當要區別介面和實現類的時候,可以在類的後面加上「Impl」。
interface Container class ContainerImpl
2.Exception類最好能用「Exception」做為類命名的結尾
DataNotFoundException InvalidArgumentException
3.抽象類最好能用「Abstract」做為類命名的開頭
AbstractBeanDefinition AbstractBeanFactory
4. Test類最好能用「Test」做為類命名的結尾
ContainerTest
5.簡稱與縮寫(不推薦使用)
cp代表colorPoint buf代表buffer off代表offset len代表length
除非是在循環中,否則一般不推薦使用單個字母作為變數名,不過也有例外,即約定俗成的單個字母
b代表byte c代表char d代表double e代表Exception f代表float i, j, k代表整數 l代表long o代表Object s代表String v代表某些類型的特定值
代碼風格
花括弧
花括弧統一採用以下格式:
if(bool experssion){ dosomework; }
除非花括弧中為空,不然任何情況下不能省略花括弧,並且花括弧必須換行,例如:
if(i==0){ return; } while(true) {}
以下寫法禁止出現:
禁止 if(i != 0) return; 禁止 if(i !=0) {return;}
括弧
括弧的前,後一個字元不需要空格,例如:
Person p = new Person(「Jack」, 17);
空格
逗號之後緊跟一個空格。
Person p = new Person(「Jack」, 16, 「China」);
二元操作符前後跟空格。
int i = a + b – c * d;
3. 一元操作符不需要空格,for語句分號後有空格。
for(int i = 0; I < 10; i++){ dosomework; }
4. 括弧前後不需要空格
類
類的定義結構按照順序為:
1) 常量
2) 成員變數
3) 構造函數
4) 成員函數
5) get和set方法
各個部分之間留出一個空行。
例如:
規范類模板:
class Person{ private final static int MAX_AGE = 100; private String firstname = 「Jack」; public Person(){} public Person(String firstname){ this.firstname = firstname; } public void doExercise(){ dosomeworks; run(); } private void run(){ dosomeworks; } public getFirstname(){ return firstname; } public setFirstname(String firstname){ this.firstname = firstname; } }
2.構造函數
1) 參數為空的構造函數出現在最上方
2) 有調用關系的構造函數相鄰
3) 參數盡量由少到多從上至下排序
3.使用成員變數
在類的方法內引用成員變數了命名沖突以外,不使用this。非特殊情況在類的方法內都不使用get和set方法存取成員變數。
4.方法
有調用關系的方法盡量放在相鄰的位置,public和private方法可以交叉放置。
5.get和set方法,所有需要公開的成員變數都要符合良好的javabean規范,提供get和set方法,盡量使用IDE工具自動生成。
Javadoc注釋
在每個程序的最開始部分,一般都用Javadoc注釋對程序的總體描述以及版權信息,之後在主程序中可以為每個類、介面、方法、欄位添加 Javadoc注釋,每個注釋的開頭部分先用一句話概括該類、介面、方法、欄位所完成的功能,這句話應單獨占據一行以突出其概括作用,在這句話後面可以跟隨更加詳細的描述段落。在描述性段落之後還可以跟隨一些以Javadoc注釋標簽開頭的特殊段落,例如上面例子中的@auther和@version,這些段落將在生成文檔中以特定方式顯示
⑶ java jsp 中包、類、介面等的命名規則
類命名規則
基本命名規則:
類、介面命名
命名規則:以大寫字母開頭,假如有多個英文本詞,每個英文本詞頭字母大寫
例如:StudentInfo
介面命名
命名規則:以大寫字母"I"開頭,假如有多個英文本詞,每個英文本詞頭字母大寫
例如:IStudentInfo
介面出現類命名:
命名規則:將出現的介面名稱的首字母"I"去掉,以"Impl作為結尾",假如有多個英文本詞,每個英文本詞頭字母大寫。
例如:StudentInfoImpl
J2EE+SSH框架命名規則
servlet類命名:
命名規則:以Servlet英文本詞結尾
例如:LoginServlet
POJO命名:
應用hibernate自動生成的類即可
DAO類命名:
應用hibernate自動生成的類即可
Action類命名:
命名規則:Action的命名以POJO名稱來制定,POJO名稱Action
例如:
一個的POJO名稱為Diary,其對應的action為DiaryAction
ActionForm類命名:
命名規則:ActionForm的命名以POJO名稱來制定,POJO名稱Form
例如:
一個的POJO名稱為Diary,其對應的actioForm為DiaryForm
業務邏輯介面命名:
命名規則:業務邏輯介面的命名以POJO名稱來制定,IPOJO名稱Service
例如:
一個的POJO名稱為Diary,其對應的業務邏輯介面為IDiaryService
業務邏輯出現類命名:
命名規則:業務邏輯介面出現類的命名以POJO名稱來制定
例如:
一個的POJO名稱為Diary,對應的業務邏輯介面出現類名為DiaryServiceImpl
⑷ 如何用java列印一棵樹
import java.util.LinkedList;/**
* 需求:按層列印一棵樹
* 說明:樹是保存在一個鏈表中
* created by wangjunfu on 2017-05-25. */
public class TreeNode {
String data;
TreeNode parent;
LinkedList<TreeNode> childlist;
TreeNode() {
data = null;
childlist = new LinkedList();
parent = null;
} //遞歸顯示並列印一棵樹
private static void displayTree(TreeNode f, int level) {
String preStr = ""; // 列印前綴
for (int i = 0; i < level; i++) {
preStr += " ";
} for (int i = 0; i < f.childlist.size(); i++) {
TreeNode t = f.childlist.get(i);
System.out.println(preStr + "-" + t.data); if (!t.childlist.isEmpty()) {
displayTree(t, level + 1);
}
}
}
}
⑸ java中怎麼判斷一個字元串的前綴和後綴是否與另一個字元串相同
一、
1、String str1 = "abcasdfasdfabc";
String str2 = "abcdsdfasdfasdfasdfasdabc";
if(str1.startsWith(str2.substring(0,2))&&str1.endsWith(str2.substring(str2.length()-3)))
System.out.println("兩個字元串前三位和後三位都相同");
else
2、 System.out.println("兩個字元串前三位和後三位不相同");
二、寫一個Java應用程序,判斷兩個字元串是否相同,判斷字元串的前綴、後綴是否和某個字元串相同,按字典順序比較兩個字元串的大小關系,檢索字元串,創建字元串,將數字型字元串轉換為數字,將字元串存放到數組中。
用字元數組創建字元串-Write a Java application to determine whether two strings are the same judgment string prefix, suffix and a string compare two strings lexicographically size relationship, retrieve the strings to create a string, converted to a digital numeric string, the string stored in the array, create a string array of characters.
⑹ java語言的所有數據類型分為哪幾種
JAVA中一共有八種基本數據類型,分別是:byte、short、int、long、float、double、char、boolean。
1、byte:8位,最大存儲數據量是255,存放的數據范圍是-128~127之間。
2、short:16位,最大數據存儲量是65536,數據范圍是-32768~32767之間。
3、int:32位,最大數據存儲容量是2的32次方減1,數據范圍是負的2的31次方到正的2的31次方減1。
4、long:64位,最大數據存儲容量是2的64次方減1,數據范圍為負的2的63次方到正的2的63次方減1。
5、float:32位,數據范圍在3.4e-45~1.4e38,直接賦值時必須在數字後加上f或F。
6、double:64位,數據范圍在4.9e-324~1.8e308,賦值時可以加d或D也可以不加。
7、boolean:只有true和false兩個取值。
8、char:16位,存儲Unicode碼,用單引號賦值。
(6)java前綴樹擴展閱讀:
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。
Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。