• ベストアンサー

splitと同じ処理

たとえば、 String[] s = new String[10]; String str = "abc:def:ghijk:lmn" s = str.split(":"); と同じようなことをsplitを使わずに簡単に行う(定石的な)方法はないでしょうか? 正規表現ではなく文字列による区切りのみの場合を考えます。

質問者が選んだベストアンサー

  • ベストアンサー
  • deadlock
  • ベストアンサー率67% (59/87)
回答No.1

java.util.StringTokenizerを使うか、自前でループします。どちらにしてもひとつユーティリティメソッドを用意することが多いです。 public static String[] split(String src, String delim) { if (delim == null || delim.length() == 0) { throw new IllegalArgumentException("Invalid delim [" + delim + "]"); } ArrayList list = new ArrayList(); int pre = 0; int index = 0; while ((index = src.indexOf(delim, pre)) != -1) { list.add(src.substring(pre, index)); pre = index + delim.length(); } list.add(src.substring(pre)); return (String[]) list.toArray(new String[list.size()]); }

arcsin
質問者

お礼

ありがとうございます。 助かりましたv

すると、全ての回答が全文表示されます。

関連するQ&A