[Java] 12.3. 符號化

將文字中的字段,如符號般一個一個取出來。

 

image/svg+xml12.3 符號化 - Tokenization class Main{ public static void main( String [] args){ String nameStr = " 王⼩明 , 曾天才 , 李⼤同 , 葉⼩五 , 張⼤三 " ; System.out.println(nameStr); } } 執⾏結果 王⼩明 , 曾天才 , 李⼤同 , 葉⼩五 , 張⼤三 class Main{ public static void main( String [] args){ String nameStr = " 王⼩明 , 曾天才 , 李⼤同 , 葉⼩五 , 張⼤三 " ; String [] names = nameStr.split ( " , " ); for ( String n : names ) System.out.println( n ); } } 執⾏結果 王⼩明 曾天才 李⼤同 葉⼩五 張⼤三 import java.util.*; class Main{ public static void main( String [] args){ String nameStr = " 王⼩明 , 曾天才 , 李⼤同 , 葉⼩五 , 張⼤三 " ; Scanner s = new Scanner ( nameStr ); s.useDelimiter ( " , " ); int count= 0 ; while ( s.hasNext ()) { count++; System.out.println( " 分割第 " +count+ " 個⽂字 :" + s.next ()); } } } import java.util.*; class Main{ public static void main( String [] args){ String someStr = " 10,2.0,abc,true,15.5,abc,false " ; Scanner s = new Scanner ( someStr ); s.useDelimiter ( " , " ); while ( s.hasNext ()) { if ( s.hasNextInt ()){ System.out.println( " 找到 Int 型別的資料 :" + s.nextInt ()); } else if ( s.hasNextDouble ()){ System.out.println( " 找到 Double 型別的資料 :" + s.nextDouble ()); } else if ( s.hasNextBoolean ()){ System.out.println( " 找到 Boolean 型別的資料 :" + s.nextBoolean ()); } else { System.out.println( " 其他資料 :" + s.next()); } } } } 執⾏結果 找到 Int 型別的資料 :10 找到 Double 型別的資料 :2.0 其他資料 :abc 找到 Boolean 型別的資料 :true 找到 Double 型別的資料 :15.5 其他資料 :abc 找到 Boolean 型別的資料 :false J12_3_1 – Main.java 1. 這是⼀串以逗號( , )連結⼈員姓名的字串, 有什麼⽅法可以將⼈員姓名分別獨立出來呢? J12_3_2 – Main.java 1. ⼀串以逗號( , )分隔的⼈員姓名的字串。 2. 透過 String 類別上的 split() ⽅法,將⼈員姓名分隔出來,⽽ split() ⽅法所需的參數,即是分隔字串的符號,在呼叫 split() ⽅法後,會以 String 陣列( String[] )的⽅式回傳分割後的字串,如此就可取得每個⼈員的姓名。 3. 最後只要透過 for ,即可 依序的每個⼈員的姓名。 J12_3_3 – Main.java 1. ⼀串以逗號( , )分隔的⼈員姓名的字串。 2. 將⼈員姓名字串代入 Scanner 建構式中,並建立物件。 3. 透過 useDelimiter() ⽅法指定分隔字串的符號為逗號( , )。 4. 使⽤ hasNext() ⽅法,詢問 Scanner 物件是否有下⼀個分 割的字串(即⼈員姓名),若有則回傳 true ,否則回傳 false ,在此搭配 while 持續詢問是否有下⼀個分割的字串。 5. 當透過 hasNext() ⽅法取得 true 後,確認有下⼀個分割的字串, 則可透過 next() ⽅法,實際將分割的字串取出(即⼈員姓名)。 Scanner 的分隔符號預設為空⽩,但可透過 useDelimiter () ⽅法指定分 隔的符號。 J12_3_4 – Main.java 1. 這個字串中,包含了 int double boolean 型別的資料和字串 abc ,並以逗號分隔。 2. 建立 Scanner 物件並代入字串。 3. 使⽤ useDelimiter() ⽅法設定分隔符號為逗號。 4. while 搭配 hasNext() ⽅法,持續確認是否有下⼀個被分割的字串。 5. 進⼀步透過 hasNextInt() ⽅法確認下⼀個被分割的 字串是否為 int 型別的資料,若為 true ,則可在進⼀步使 nextInt() ⽅法以 int 型別的⽅式取出資料。  6. 同樣使⽤ hasNextDouble() ⽅法 確認下⼀個被分割的字串是否為 double 型別的資料,若為 true ,則 可在進⼀步使⽤ nextDouble () ⽅法 double 型別的⽅式取出資料。  7. 同樣使⽤ hasNextBoolean() 法確認下⼀個被分割的字串是否為 boolean 型別的資料,若為 true ,則 可在進⼀步使⽤ nextBoolean () 法以 boolean 型別的⽅式取出資料。  ⼀連串以逗號( , )分隔的⼈員姓名, 要如何將每個⼈員的姓名分號獨立出來呢? 1 1 split() ⽅法,分離每個⼈員的姓名 1 1 Scanner 類別,也可分離每個⼈員的姓名 Scanner 類別,找出特定基本資料型別的符號 1 2 3 1 2 3 4 2 3 4 4

留言