0

文字列を指定された長さ(10文字)に分割する必要があります。

以下は私のコードです:

Pattern p = Pattern.compile(".{0,10}");
Matcher m = p.matcher("012345678901234567890123456");
List<String> emailStr = new ArrayList<String>();
while(m.find())
{
   System.out.println(m.group());
}

私の要件に関しては、最大3つの文字列を取得します。この「n」個の文字列を個別の変数に割り当てたいと思います。私はこれについて何も考えていません。それを手伝ってください。

4

2 に答える 2

0

ジャックが与えた答えに基づいて:

public List<String> splitter(String str, int len) {
  ArrayList<String> lst = new ArrayList<String>((str.length() - 1)/len + 1);
  for (int i = 0; i < str.length(); i += len)
    lst.add(str.substring(i, Math.min(str.length(), i + len)));
  return lst;
}

これにはパターンマッチャーを使用しないでください。正規表現が基本的な概念ではない言語では、必要のない場所で正規表現を使用しないでください。では、正規表現を使用してできることはすべて行いますが、それ以外の場合は行いません。

于 2012-07-24T14:21:59.547 に答える
0

これを使用して、必要なものを取得できます。

public static String[] splitter(String str, int len) {
    String[] array = new String[(int) str.length() / len + 1];
    for (int i = 0; i < str.length() / len + 1; i++) {
        String s = "";
        for (int j = 0; j < len; j++) {
            int index = i * len + j;
            if (index < str.length())
                s += str.charAt(i * len + j);
            else
                break;
        }
        array[i] = s;
    }
    return array;
}
于 2012-07-24T14:16:36.310 に答える