将StringBuffer划分为更小的部分

时间:2012-03-14 05:29:02

标签: java stringbuffer

我有一个很大的字符串缓冲区,我想分成更小的部分。字符串缓冲区看起来像这样

"name1+name2+name3+name4+..........+name2000"

哪里

name1=john
name2=prince 
and so on.

(你得到idea.name1,name2,name3代表不同长度的实际名称)

现在我想将名称存储在一个字符串数组中,每个位置包含200个名称。

string[0]="name1+name2+name3+........+name200";
string[1]="name201+name202+...."

我将如何实现这项任务?

5 个答案:

答案 0 :(得分:2)

StringTokenizer str = new StringTokenizer(<StringBufferObject>);
int count = 0;
int arrCount = 0;
StringBuffer temp;
String[] stringArr = new String[x];
while(str.hasMoreTokens()) {
    count++;
    if(count != 200) {
        temp.append(str.nextToken());
    }
    else {
    stringArr[arrCount] = temp;
    temp.delete(0,temp.length());
    count = 0;
    arrCount++;
}

答案 1 :(得分:1)

如果可能的话,使用String.split()分割String会容易得多:

/* something like this */

String arrayOfStrings = inputString.split("\+");

如果你必须将它保存为StringBuffer,你必须循环输入并自行标记它。

我想它看起来像这样:

public String[] getTwoHundredStrings(StringBuffer inputBuff, String someToken)
{
    String [] nameArray = new String [200];

    int currentPos = 0;
    int nextPos = 0;

    for ( int i = 0; i < 200; i ++ ) {

        nextPos = inputBuff.indexOf(someToken, currentPos);

        if ( nextPos < 0 ) {
            break;
        }

        String nextName = inputBuff.substring(currentPos, nextPos);

        nameArray[i] = nextName;        
        currentPos = nextPos;
    }   

    /* do some cleanup if nameArray has less than 200 elements */

    return nameArray;

答案 2 :(得分:0)

每个名字之间必须有一些分隔符。要打破字符串,我们应该有一些分隔符。 如果你有分隔符,你可以在for循环中使用subString()。

答案 3 :(得分:0)

尝试使用

String[] tempNames = new String(namesBuffer).split("+");

然后

int length = (tempNames.length / 200)+ (tempName.length % 200)
String[] names = new String[length];
for(int i = 0 ; i< tempNames.length ; i++){
   for(int j = 0 ; j < length ; j++)
       names[j] = tempNames[i];
}

希望这会有所帮助

答案 4 :(得分:0)

  1. 使用String.split("\\+")
  2. 拆分为“+”
  3. 以较小的数组Arrays.copyOfRange(...)
  4. 获取chucks
  5. 使用Joiner.on("+").join(smallerArray)
  6. Guava Joiner加入
相关问题