2010-12-08 4 views
21

Я ранее писал игру Hangman для своего класса java в школе. Сейчас я переношу его на Android и встречаю несколько проблем. Исходная java-программа написала все выходы на консоль. Теперь мне нужно как-то оповестить вывод так, чтобы он соответствовал макету, который я разработал.Печатать массив без скобок и запятых

Как напечатать массив без скобок и запятых? Массив содержит косые черты и заменяется по очереди, когда правильная буква угадывается.

Я использую обычную функцию .toString() класса ArrayList, и мой вывод форматируется как: [a, n, d, r, o, i, d]. Я хочу, чтобы он просто распечатывал массив как одну строку.

Эти проблемы кажутся такими простыми, хотя я не смог найти решение для этого. Не используя функцию поиска.

я заполнить массив, используя этот кусок кода:

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

И я напечатать это следующим образом:

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

Любая помощь будет оценена

+2

Метод ToString() на интерфейсе List действительно только предназначен для отладки и регистрации. Вы не должны использовать его для представления вывода пользователю. – 2010-12-08 16:01:46

ответ

33

В основном, не используют ArrayList.toString() - создайте строку для себя. Например:

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

(Лично я не стал бы называть переменную publicArray, когда это на самом деле не является массивом, кстати.)

+0

Спасибо, что было то, что я искал. Я знал, что это просто. Благодаря! – SQDK 2010-12-08 16:15:52

8

первый

StringUtils.join(array, "");

второй

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

EDIT

вероятно лучший друг: Arrays.toString(arr)

+1

The StringUtils - это более чистая опция в моем оппионе. +1 – Faliorn 2014-11-20 14:46:43

76

Заменить скобки и запятые с пустым пространством.

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 
+0

В вызове метода замены для правой скобки ошибочно содержится левая скобка. Но в противном случае это сработает. – 2011-01-04 23:05:37

+0

это хорошо работает благодаря большому количеству – prasanthMurugan 2016-04-20 13:25:03

+0

Его хорошее решение – Sampad 2016-11-03 06:12:38

3

самое простое решение для удаления скобок is,

1. преобразовать arraylist в строку с помощью метода .toString().

2.use String.substring (1, strLen-1). (Где strLen - это длина строки после преобразования из arraylist).

3.Hurraaah ..строка результата - это строка с удаленными скобками.

надеюсь, что это полезно ... :-)

-1

Просто инициализировать String объект с массивом

String s=new String(array); 
Смежные вопросы