打印阵列没有括号和逗号

时间:2010-12-08 15:57:38

标签: java android arrays list collections

我正在将一个Hangman游戏移植到Android并遇到了一些问题。最初的Java程序使用了控制台,所以现在我必须以某种方式美化输出,使其适合我的Android布局。

如何在没有括号和逗号的情况下打印数组?该数组包含斜杠,并在猜到正确的字母时逐个替换。

我正在使用.toString()类的常用ArrayList函数,我的输出格式为:[ a, n, d, r, o, i, d ]。我希望它只是将数组打印为单个String

我使用这段代码填充数组:

List<String> publicArray = new ArrayList<>();

for (int i = 0; i < secretWordLength; i++) {
    hiddenArray.add(secretWord.substring(i, i + 1));
    publicArray.add("-");
}

我打印出来就像这样:

TextView currentWordView = (TextView) findViewById(R.id.CurrentWord);
currentWordView.setText(publicArray.toString());

任何帮助都将不胜感激。

10 个答案:

答案 0 :(得分:92)

用空格替换括号和逗号。

String formattedString = myArrayList.toString()
    .replace(",", "")  //remove the commas
    .replace("[", "")  //remove the right bracket
    .replace("]", "")  //remove the left bracket
    .trim();           //remove trailing spaces from partially initialized arrays

答案 1 :(得分:48)

基本上,不要使用ArrayList.toString() - 为自己构建字符串。例如:

StringBuilder builder = new StringBuilder();
for (String value : publicArray) {
    builder.append(value);
}
String text = builder.toString();

(顺便说一下,当它实际上不是一个数组时,我不会调用变量publicArray。)

答案 2 :(得分:19)

您可以使用android.text.TextUtils类中的加入方法,例如:

TextUtils.join("",array);

答案 3 :(得分:14)

第一

StringUtils.join(array, "");

第二

Arrays.asList(arr).toString().substring(1).replaceFirst("]", "").replace(", ", "")

修改

可能是最好的一个:Arrays.toString(arr)

答案 4 :(得分:6)

对于Java 8或更高版本,您可以使用String.join,它提供相同的功能:

  

返回一个新的String,该字符串由CharSequence元素的副本和指定的定界符的副本组成

String[] array = new String[] { "a", "n", "d", "r", "o", "i", "d" };
String joined = String.join("", array); //returns "android"

使用其他类型的数组,应将其转换为String数组或可迭代的char序列:

int[] numbers = { 1, 2, 3, 4, 5, 6, 7 };

//both of the following return "1234567"
String joinedNumbers = String.join("",
        Arrays.stream(numbers).mapToObj(String::valueOf).toArray(n -> new String[n]));
String joinedNumbers2 = String.join("",
        Arrays.stream(numbers).mapToObj(String::valueOf).collect(Collectors.toList()));

String.join的第一个参数是定界符,可以相应地进行更改。

答案 5 :(得分:4)

删除括号的最简单方法是,

1.使用.toString()方法将arraylist转换为字符串。

2.use String.substring(1,strLen-1)。(其中strLen是从arraylist转换后的字符串长度)。

3.Hurraaah ..结果字符串是带有删除括号的字符串。

希望这很有用......: - )

答案 6 :(得分:4)

如果您使用Java8或更高版本,则可以将stream()与native。一起使用。

A

参考

答案 7 :(得分:1)

我使用了join()函数,如:

i=new Array("Hi", "Hello", "Cheers", "Greetings");
i=i.join("");

哪个版画:
     HiHelloCheersGreetings


查看更多:Javascript Join - Use Join to Make an Array into a String in Javascript

答案 8 :(得分:0)

我用过 Arrays.toString(array_name).replace(“ [”,“”)。replace(“]”,“”)。replace(“,”,“”); 正如我从上面的一些评论中看到的那样,但是我还在逗号后添加了一个额外的空格字符( .replace(“,”,“”)部分),因为在我打印时换行中的每个值,仍然会有空格字符来移动单词。它解决了我的问题。

答案 9 :(得分:-3)

只需使用数组初始化String对象

String s=new String(array);