Я'м перепутал немного. Я не мог'т найти ответ в любом месте ;(
Я'ве получил массив строк:
String[] arr = ["1", "2", "3"];
тогда я преобразовать его в строку:
String str = Arrays.toString(arr);
System.out.println(str);
Я ожидал получить строку в "123"
В, но я получил я строку в "[1,2,3]&;
вместо этого.
Как я могу сделать это в Java? Я'м с использованием интегрированной среде разработки Eclipse
String[] strArr = {"1", "2", "3"};
StringBuilder strBuilder = new StringBuilder();
for (int i = 0; i < strArr.length; i++) {
strBuilder.append(strArr[i]);
}
String newString = strBuilder.toString();
Здесь's, почему это лучшее решение с использованием конкатенации строк: когда вы объединить 2 строки, создается новый объект строку и посимвольно копирования. <БР>Фактически это означает, что сложность кода будет порядка квадрату размера массива!
(1+2+3+ ... П
- количество символов, копируемых на одну итерацию).
То StringBuilder бы 'копировать в строку' только в этом случае снижение трудоемкости К-О(Н)`.
Arrays.toString(arr);
выход [1,2,3] и хранить его в строку . и печать поэтому вы получаете выход [1,2,3].
Если вы хотите получить выход 123, попробуйте это:
public static void main(String[] args) {
String[] arr= {"1","2","3"};
String output ="";
for(String str: arr)
output=output+str;
System.out.println(output);
}
Выход:
123
Массивы.метод toString: (от API, по крайней мере, для объекта версия[]
его)
public static String toString(Object[] a) {
if (a == null)
return "null";
int iMax = a.length - 1;
if (iMax == -1)
return "[]";
StringBuilder b = new StringBuilder();
b.append('[');
for (int i = 0; ; i++) {
b.append(String.valueOf(a[i]));
if (i == iMax)
return b.append(']').toString();
b.append(", ");
}
}
Так это означает, что он вставляет [
в начале ]
в конце, и ,
между элементами.
Если вы хотите, чтобы он без этих персонажей: (то StringBuilder работает быстрее, чем ниже, но это может'т быть небольшое количество кода)
String str = "";
for (String i:arr)
str += i;
System.out.println(str);
Примечание:
Строка[] ОБР[3]= [1,2,3]
выиграл'т компиляции.
Предположительно вы хотели: строка[] ОБР = {"и 1" В, С "2" В, С "3" и};
Используйте массивы.метод toString() функция. Он держит ваш код короткий и читаемый. Он использует строку строитель внутренне, таким образом, это's также эффективно. Чтобы избавиться от лишних символов, вы, возможно, выбрали, чтобы устранить их, используя строку.заменить() функция, которая, безусловно, снижает читабельность снова.
String str = Arrays.toString(arr).replaceAll(", |\\[|\\]", "");
Это похоже на ответ Трис Nefzger, но без длительных выделение подстроки, чтобы избавиться от квадратных скобок.
Объяснение выражения: " в|то" означает любое из &Я [" и "] и запах мяты,&; и ";;. В "\\" и говорит Java строку, что мы не смысл некоторых специальных символов (например, новая линия " и\П" или вкладку " в\Т", У), но реальную обратную косую черту " и\" по. Поэтому вместо того, чтобы " в\\[:" с, регулярное выражение переводчик читает " и\[", который говорит, что мы имеем в виду буквальное квадратных скобок и не хотите использовать его в качестве части регулярного выражения язык (например, " у[^3]*то" означает любое количество символов, но ни один из них должны быть "3", у).
Сделать это в Java 8 всего 1 строку:
Строку.присоединиться (на" Наша" Арр);`
Я только что написал следующее:
public static String toDelimitedString(int[] ids, String delimiter)
{
StringBuffer strb = new StringBuffer();
for (int id : ids)
{
strb.append(String.valueOf(id) + delimiter);
}
return strb.substring(0, strb.length() - delimiter.length());
}
На весенние проекты:
орг.springframework.утиль.StringUtils.arrayToDelimitedString(объект[] Арр строке delim)
Для пользователей Апач Коммонс, набор хороших методов соединения:
орг."Апач".общин.яз.StringUtils.присоединение(объект[] массив типа char сепаратор)
Используя гуава'ы Столяр
(который в Р18 внутренне использует класса StringBuilder
)
String[] arr= {"1","2","3"};
Joiner noSpaceJoiner = Joiner.on("");
noSpaceJoiner.join(arr))
Столяр
полезен, потому что он является потокобезопасным и неизменными и могут быть повторно использованы во многих местах без необходимости дублировать код. На мой взгляд, он также является более читаемым.
Используя Java 8'ы поток
поддержки, мы также можем сократить это вниз в один-лайнер.
String concat = Stream.of(arr).collect(Collectors.joining());
Оба выхода в данном случае 123
Это немного код преобразовать строковый массив в строку без [
или ]
или ,
String[] strArray = new String[]{"Java", "String", "Array", "To", "String", "Example"};
String str = Arrays.toString(strArray);
str = str.substring(1, str.length()-1).replaceAll(",", "");
Массивы.toString является форматирование вывода (добавлено скобки и запятые). вы должны реализовать свой собственный метод метод toString.
public String toString(String[] arr){
String result = "";
for(String s : arr)
result+=s;
return result;
}
[править] то StringBuilder, хотя лучше. см. выше.
взгляните на https://stackoverflow.com/questions/5861926/generic-method-to-print-all-elements-in-an-array
но короче говоря, массивы.метод toString(arr) - это просто легкий способ печати содержимого массива примитивной.
Для тех, кто развивает в Android, использовать TextUtils.
String items = TextUtils.join("", arr);
Предполагая, что arr-это типа String[] ОБР= {"и 1" В, С"2" В, С"3" и};`
Выходом могло бы быть 123
Класс Object имеет метод toString. Все остальные классы расширяя его переопределяет метод toString так для массивов и toString является перекрытая таким образом. Так что если вы хотите, чтобы ваш выход в свой путь вы должны создать свой собственный метод, с помощью которого вы получите желаемый результат.
str="";
for (Integer i:arr){
str+=i.toString();
}
Надеюсь, что это помогает
см https://stackoverflow.com/questions/7060016/why-does-the-tostring-method-in-java-not-seem-to-work
Массивы.метод toString() может использоваться для преобразования строкового массива в строку. Дополнительные символы могут быть удалены с помощью регулярных выражений или с помощью метода replace.
Arrays.toString(strArray).replace(",", "").replace("[", "").replace("]", "");
В Java 8 ввела новый способ для строка присоединиться общественная статическая строка присоединиться(объект CharSequence разделитель, объект CharSequence... элементов)
String.join("", strArray);
Пример с использованием Java 8.
String[] arr = {"1", "2", "3"};
String join = String.join("", arr);
Я надеюсь, что помогает
Вот способ сделать это: Массивы.метод toString(массив).подстрока(1,(3*массив.длина-1)).заменяет (и", то "," на глаз");
Вот демо-класс:
package arraytostring.demo;
import java.util.Arrays;
public class Array2String {
public static void main(String[] args) {
String[] array = { "1", "2", "3", "4", "5", "6", "7" };
System.out.println(array2String(array));
// output is: 1234567
}
public static String array2String(String[] array) {
return Arrays.toString(array).substring(1, (3 * array.length - 1))
.replaceAll(", ", "");
}
}
Скала делает это проще, чище и безопаснее:
scala> val a = Array("1", "2", "3")
a: Array[String] = Array(1, 2, 3)
scala> val aString = a.mkString
aString: String = 123
scala> println(aString)
123
String newString= Arrays.toString(oldString).replace("[","").replace("]","").replace(",","").trim();