Как преобразовать строку [] в строку? - PullRequest
0 голосов
/ 28 февраля 2012

Я знаю, как отделить строку от строки []. В моем проекте я использую t = time.split("-"), чтобы разделить время на строковый массив t, и t[0]=DD, t[1]=MM. Теперь мне нужно преобразовать строковый массив t в строковое время в формате DD-MM. Были ли в Java функции для этого?

Ответы [ 4 ]

8 голосов
/ 28 февраля 2012

Гуава делает:

String joined = Joiner.on('-').join(parts);

С другой стороны, я бы на самом деле предложил , а не разделение и присоединение вашей строки для начала. Вместо этого проанализируйте его в соответствующий тип даты / времени (в идеале Joda Time ), выполните любые необходимые манипуляции, а затем переформатируйте его, используя другой шаблон формата.

Это улучшит обнаружение ошибок и в основном заставит ваш код действительно отражать характер данных, с которыми вы работаете - вместо того, чтобы просто говорить о разбиении и объединении текста.

3 голосов
/ 28 февраля 2012

Вы можете использовать Строковые утилиты от Apache Commons , например:

String res = StringUtils.join(myStrings, "-");

Если вы не хотите использовать внешние фреймворки, вы можете свернуть свои собственные, например, так:

StringBuilder res = new StringBuilder();
boolean isFirst = true;
for (String s : myStrings) {
    if (!isFirst) {
        res.append('-');
    } else {
        isFirst = false;
    }
    res.append(s);
}
1 голос
/ 28 февраля 2012
public static String join(String[] arr, String separator)
{
    StringBuilder b = new StringBuilder();
    for(int i = 0; i < arr.length; i++)
    {
        if(i != 0) b.append(separator);
        b.append(arr[i]);
    }
    return b.toString();
}
0 голосов
/ 29 февраля 2012

Для этого простого примера, что с этим не так?

String time = t[0]+"-"+t[1];

Да, используйте StringBuilder, когда производительность имеет значение, но это гораздо более кратко.

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