使用字符串缓冲区从 ArrayList 获取单行或双行中的字符串



我有一个包含一些元素的ArrayList,我正在使用字符串缓冲区来获取字符串。但是当我打印字符串时,我进入了无组织的行。我想进入单线或双线。

ArrayList<String> mCombinedList; // it contains some value I have already instantiate it  
StringBuilder builder = new StringBuilder();
for (String singleLine : mCombinedList) {
if (builder.length() > 0) {
builder.append(" ");
}
builder.append(singleLine);
}
String string = builder.toString();
Log.e(TAG, "string builder "  +string );

实现此代码后,我在日志中得到此结果。

阿卜杜勒·贾尼  456 好友用户 3 721015*** Friend

**ArrayList value of mCombinedList;**

[ 阿卜杜勒·贾尼 456 朋友,用户 3 721015*** 朋友]

在使用 StringBuilder 构建字符串的最后阶段,当您收集了所有字符串时,只需调用此正则表达式即可删除所有大于 2 的空格,这将清理由于源数组列表中的空字符串而引入的所有额外空格

String string = builder.toString().replaceAll("\s{2,}", " ").trim();

您正在通过builder.append(" ");添加大量空格。使用ArrayList.toString()将解决您的问题。

package com.test;
import java.util.ArrayList;
public class ListToString {
public static void main(String[] args) {
ArrayList<String> mCombinedList = new ArrayList<>();
mCombinedList.add("abdul jani");
mCombinedList.add("456");
mCombinedList.add("Friend");
mCombinedList.add("User");
mCombinedList.add("3");
mCombinedList.add("721015****");
mCombinedList.add("Friend");
String string = mCombinedList.toString();
//System.out.println(string);
Log.e(TAG, "string builder "  +string );
}
}

输出:

[abdul jani, 456, Friend, User, 3, 721015****, Friend]

最新更新