Я вижу какое-то странное явление, что, если я не использую свою исходную строку ввода для преобразования обратно в строку из массива char, изменения не возникают в новом строка?создание новой строки из массива char
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.print("Type in String:");
String theString = scan.nextLine();
theString = theString.replaceAll("\\s+", " ");
char [] convert = theString.toCharArray();
convert[0] = Character.toUpperCase(convert[0]);
for(int i = 0; i < convert.length; i++){
if(Character.isWhitespace(convert[i])){
convert[i+1] = Character.toUpperCase(convert[i+1]);
}
}
theString = String.valueOf(convert);
System.out.println(theString);
Если линия theString на второй до последней строки было изменено позволяет сказать:
String newString = String.valueOf(convert);
или
String newString = String(convert);
Мой выход не изменяет вход! Эта программа суммирует заглавные буквы первого символа каждого слова в строке. Может кто-нибудь объяснить, почему происходит событие?
Можете ли вы попытаться объяснить это снова? Я изо всех сил пытаюсь понять, что вы ожидаете, и что на самом деле происходит. –
в принципе, вход привет мир => Hello World для вывода Однако, если я изменяю имя или переменную массива символов, которые нужно преобразовать в строку, он не работает –
Ну, если 'newString' содержит преобразованную строку, но вы напечатайте 'theString', очевидно,' 'String' напечатан. И 'theString' - это начальная, а не преобразованная строка. –