Java StringTokenizerの例
Javaでは、StringTokennizerクラスを使用して、文字列を定義された区切り文字で別のトークンに分割できます(スペースはデフォルトの区切り文字です)。ここに2つの `StringTokennizer`の例があります:
例1
`StringTokennizer`を使用して文字列を” space “と” comma “区切りで分割し、StringTokenizer要素を繰り返して1つずつ出力します。
package com.mkyong; import java.util.StringTokenizer; public class App { public static void main(String[]args) { String str = "This is String , split by StringTokenizer, created by mkyong"; StringTokenizer st = new StringTokenizer(str); System.out.println("---- Split by space ------"); while (st.hasMoreElements()) { System.out.println(st.nextElement()); } System.out.println("---- Split by comma ',' ------"); StringTokenizer st2 = new StringTokenizer(str, ","); while (st2.hasMoreElements()) { System.out.println(st2.nextElement()); } } }
出力
---- Split by space ------ この は 文字列 、 スプリット によって StringTokenizer、 作成した によって ミキョン ----カンマで分割する '、------ これは文字列です StringTokenizerで分割 mkyongによって作成されました
例2
csvファイルを読み込んでStringTokenizerを使用して文字列を “|”区切り文字で区切り、それを印刷します。
File:c:/test.csv
1| 3.29| mkyong 2| 4.345| eclipse
package com.mkyong; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.StringTokenizer; public class ReadFile { public static void main(String[]args) { BufferedReader br = null; try { String line; br = new BufferedReader(new FileReader("c:/test.csv")); while ((line = br.readLine()) != null) { System.out.println(line); StringTokenizer stringTokenizer = new StringTokenizer(line, "|"); while (stringTokenizer.hasMoreElements()) { Integer id = Integer.parseInt(stringTokenizer.nextElement().toString()); Double price = Double.parseDouble(stringTokenizer.nextElement().toString()); String username = stringTokenizer.nextElement().toString(); StringBuilder sb = new StringBuilder(); sb.append("\nId : " + id); sb.append("\nPrice : " + price); sb.append("\nUsername : " + username); sb.append("\n** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** \n"); System.out.println(sb.toString()); } } System.out.println("Done"); } catch (IOException e) { e.printStackTrace(); } finally { try { if (br != null) br.close(); } catch (IOException ex) { ex.printStackTrace(); } } } }
出力
1| 3.29| mkyong Id : 1 Price : 3.29 Username : mkyong ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** 2 | 4.345 |日食 Id:2 価格:4.345 ユーザー名:eclipse ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** 完了
リファレンス
リンク://タグ/java/[java]リンク://タグ/文字列/[文字列]