Здравствуйте! помогите ,пожалуйста,понять разницу между этим решением
public class Solution {
public static void main(String[] args) {
String packagePath = "java.util.stream";
String[] tokens = getTokens(packagePath, "\\.");
System.out.println(Arrays.toString(tokens));
}
public static String[] getTokens(String query, String delimiter) {
StringTokenizer tokenizer = new StringTokenizer(query,delimiter);
String[]result= new String [tokenizer.countTokens()];
int i = 0;
while (tokenizer.hasMoreTokens()) {
result[i++]= tokenizer.nextToken();
}
return result;
}
}
и этим
public static String[] getTokens(String query, String delimiter) {
StringTokenizer tokenizer = new StringTokenizer(query, delimiter);
String[] result = new String[tokenizer.countTokens()];
for(int i = 0;i< result.length;i++){
result[i] = tokenizer.nextToken();
}
return result;
}
}
я не понимаю,почему в первом случае result[i++]= tokenizer.nextToken(); почему [i++]? а как тогда в result[0] присваивается tokenizer.nextToken()?
я решила через цикл for , потом посмотрела ответ и не поняла
вот так я еще тоже понимаю,так тоже работает,и логика понятна
int i = 0;
while (tokenizer.hasMoreTokens()) {
result[i]= tokenizer.nextToken();
i++;
Заранее огромное спасибо!
Sveto4ka
10 уровень
не понимаю решения задачи
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Anonymous #3303140
вчера, 19:04
Никакой разницы нет.
Постфиксный инкремент (i++) возвращает текущее значение i и затем увеличивает его на 1.
То есть, когда i равно 0, i++ возвращает 0 и затем (сразу же после того, как вернёт) увеличивает i на 1.
То, о чём ты думаешь, это префиксный инкремент (++i). Этот оператор сначала увеличивает значение параметра на 1, а затем его возвращает. В этом случае действительно к нулевому элементу бы обращения не произошло.
Не стоит воспринимать правильное решение за эталонное. Это лишь один из способов решить задачу. Вариант с циклом for читается чище.
+1
Sveto4ka
вчера, 19:59
спасибо! значит,буду делать с циклом for... а то у меня это "правильное решение" мозг не воспринимает)) или сначала result[i] , а потом i++
0