Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.
Закрыт 1 год назад.
Пытаюсь решить задачу, но ничего не получается. Я искал информацию об ошибке, но не нашел ответа. Прошу помочь.
Текст задачи, если интересно:
Дана непустая строка и целое число n
. Вернуть новую строку, в которой символ
на n
'ой позиции будет удалён. Значение n
- валидная позиция
символа в оригинальной строке (n
находится в промежутке
[0;str.length - 1]
.
public class Five{
public static void main(String[] args) {
missingChar mschar = new missingChar("abcdefghigklmnopqrstuwxyz", 5);
System.out.println(mschar);
}
public String missingChar(String word, int n){
for(int i = 0; i < word.length(); i++){
if(word[i] == n){
for(int j = i; j < word.length - 1; j++){
word[j] = word[j+1];
}
break;
}
}
}
}
Вот, кстати, сам текст ошибки:
Five.java:13: error: cannot find symbol
missingChar mschar = new missingChar("abcdefghigklmnopqrstuwxyz", 5);
^
Вообще, правильный ответ уже был дан в комментариях. Нужно изучить основы языка. И когда основы будут изучены, вы увидите, что существуют гораздо более удобные способы решения этой задачи, чем решение через циклы.
С помощью обычного цикла задача решается так:
public static String missingChar1(String word, int n){
String res = "";
for(int i = 0; i < word.length() - 1; i++){
if (i < n) {
res += word.charAt(i);
} else {
res += word.charAt(i + 1);
}
}
return res;
}
Но в Java есть встроенный класс StringBuilder
, который, помимо прочих удобных методов, позволяет удалять символы из строки непосредственно. Метод delete(a, b)
удаляет из строки все символы с индексами от a
до b
, включая a
, но не включая b
. Зная это, можно упростить решение до вот такого вида:
public static String missingChar2(String word, int n){
StringBuilder res = new StringBuilder(word);
res.delete(n, n + 1);
return res.toString();
}
Однако, можно привести еще более короткое решение, воспользовавшись стандартным методом substring()
класса String
. Просто взять кусок строки до заданного символа и "склеить" (конкантенировать) его с куском строки после этого символа.
public static String missingChar3(String word, int n){
return word.substring(0, n) + word.substring(n + 1);
}
Желаю вам успехов в изучении красивого и элегантного языка Java!
Ты написал метод, а не класс. Метод - это тоже самое, что и функция. Он выполняет какое-либо действие, и в зависимости от типа метода, может либо вернуть значение, либо нет. Так же ты создал по видимому экземпляр метода(такого не бывает!). Экземпляры бывают только класса!
Нет ничего страшного, как только пройдешь раздел классы, можешь смело реализовывать!
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
у меня присутствует ховер, который добавляет линию подчеркивания под объектом]2
Как сделать отображение шрифта иконок кросс-браузерно?
Хочу отсортировать массив из массивов char (char[32])Хочу использовать метод sort из stl