Мне любопытно, почему ты хочешь это сделать. Строки можно читать в основном как массивы с charAt()
. Вы можете превратить строку в поток с помощью StringReader
. Вы можете превратить строку в IntStream
с помощью chars()
или codePoints()
. Или вы можете просто получить копию, если его внутренний символьный массив с toCharArray()
.
Относительно того, что вы сказали в комментариях о toCharArray()
или .split()
отключении, это не так. У вас должна быть ошибка где-то, пожалуйста, покажите нам ваш код.
public static void main( String[] args ) {
String test = "Hello! My name is x";
char[] chars = test.toCharArray();
System.out.println( Arrays.toString( chars ) );
}
Это печатает всю строку для меня и не обрезается.
run:
[H, e, l, l, o, !, , M, y, , n, a, m, e, , i, s, , x]
BUILD SUCCESSFUL (total time: 0 seconds)
Обновление: Что касается вашего обновления, next()
находит токены, которые по умолчанию обрезаются на пустом месте. Вы хотите nextLine()
.
return Arrays.asList(scanner.next().split(""));
Изменить на:
return Arrays.asList(scanner.nextLine().split(""));