Я работаю со String и String [] в java.
У меня есть одна строка [], и я хотел преобразовать ее в строку, но не хочу, чтобы в ней было последнее значение индекса.
String[] arr = new String[]{"1","2","3","4"};
Мне нужна новая строка только как 123.
Да, я могу выполнить итерацию arr до второго последнего индекса, сохраняя присвоение значения в новой строке. Но есть ли другой способ сделать это более разумным?




попробуй это
String[] arr = new String[]{"1","2","3","4"};
String newString = "";
for (int i = 0; i < arr.length -1 ; i++) {
newString += arr[i];
}
System.out.print(newString);
Вывод
123
Я думаю о трех способах.
Первый использует StringBuilder. Это дает вам полный контроль с минимумом мусора. (Я бы предпочел этот)
public static String convert(String... arr) {
// in case of arr is really big, then it's better to first
// calculate required internal buffer size, to exclude array copy
StringBuilder buf = new StringBuilder();
for(int i = 0; i < arr.length - 1; i++)
buf.append(arr[i]);
return buf.toString();
}
Другой способ - использовать функцию Java8 String.join():
public static String convert(String... arr) {
return String.join("", arr).substring(0, arr.length - 1);
}
И, наконец, используя Stream:
public static String convert(String... arr) {
return Arrays.stream(arr, 0, arr.length - 1).collect(Collectors.joining(""));
}
@Dhiral Kaniya, я не думаю, что этого можно достичь без итерации массива. Я думаю, вам следует искать наиболее оптимальный способ выполнения итерации. Я лично считаю, что если вы используете Java 8, вы можете использовать Stream API.