Получение всех значений массива строк в одной строке - PullRequest
5 голосов
/ 11 октября 2009

если есть,

String[] s = new String[3];
s[0] = "Ap";
s[1] = "p";
s[2] = "le";

String result = ?

Если я хочу вывести Apple из s без зацикливания, как мне это сделать?

Какой-нибудь короткий путь?

Ответы [ 6 ]

9 голосов
/ 11 октября 2009

Если для вас не цикличность важнее, чем запрет на импорт другой библиотеки, или если вы уже используете apache commons lang , в любом случае, вы можете использовать метод StringUtils.join

import org.apache.commons.lang.StringUtils;
String joined = StringUtils.join(s, "");

Возможно, у Apache Commons есть и другие методы, которые могут быть интересны и для вашего проекта. Я нашел их очень полезным ресурсом для отсутствующих функций в родных библиотеках Java.

2 голосов
/ 11 октября 2009

Без зацикливания вы можете:

public String joinpart(String[] a, int i, String prefix) {
    if (i < a.length) {
        return joinpart(a, i + 1, prefix + a[i]);
    }
    return prefix;
}

тогда:

String[] a = new String[]{"Ap", "p", "le"};
String apple = joinpart(a, 0, "");

Это называется рекурсивным решением.

1 голос
/ 01 февраля 2010

, используя Dollar , просто набрав:

String[] array = new String[] { "Ap", "p", "le" };
String result = $(array).join(); // result now is "Apple"
1 голос
/ 11 октября 2009

Если вы знаете длину вашего массива, вы можете легко сделать следующее:

String result = s[0] + s[1] +s[2];

Другой вариант - сделать следующее (это чисто академический подход, я бы не использовал его в сценарии реального мира, поскольку он удалял бы [, ] и <space> из ваших строк): 1007 *

String result = Arrays.toString(s).replaceAll("[\\]\\[, ]", "");

Еще один вариант, согласиться с первой попыткой, но с использованием C-подобного форматера:

System.out.println(String.format("%s%s%s", s));
0 голосов
/ 11 октября 2009

В Java нет метода типа String.join(). Вам придется свернуть один самостоятельно, если вы хотите скрыть петлю.

0 голосов
/ 11 октября 2009
String result = s[0] + s[1] + s[2];

Если у вас есть неизвестное количество записей, я думаю, вам понадобится цикл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...