У меня вопрос, что означает str [newLength] = '\ 0? потому что я думаю, что последний символ должен быть str [newLength-1], поэтому я не знаю смысла этой строки.Что означает str [newLength] = ' 0?
Напишите способ замены всех пробелов в строке на «% 20». Предположим, что строка имеет достаточное пространство в конце строки для хранения дополнительных символов и что вам задана истинная длина строки. Я использовал код книги, внедрение решения в Java с использованием массива символов (учитывая тот факт, что Java Strings неизменны):
public class Test {
public void replaseSpaces(char[] str, int length) {
int spaceCount = 0, newLength = 0, i = 0;
for(i = 0; i < length; i++) {
if (str[i] == ' ')
spaceCount++;
}
newLength = length + (spaceCount * 2);
str[newLength] = '\0';
for(i = length - 1; i >= 0; i--) {
if (str[i] == ' ') {
str[newLength - 1] = '0';
str[newLength - 2] = '2';
str[newLength - 3] = '%';
newLength = newLength - 3;
}
else {
str[newLength - 1] = str[i];
newLength = newLength - 1;
}
}
System.out.println(str);
}
Не делайте этого ... Вы должны использовать 'UrlEncoder' для [кодирования строки для URL-адреса] (http://stackoverflow.com/questions/10786042/java-url-encoding). –
Не UrlEncoder конвертирует пространство в плюс? – Marichyasana
Этот оператор будет хранить символ «null» в массиве 'str', в элементе, индексированном' newLength'. Это фактически завершает нуль строку C-стиля, содержащуюся в массиве 'str'. То, что это означает, зависит от человека, который написал код - это не стандартная идиома Java. –