Я получил сообщение об ошибке, в котором говорится, что невозможно преобразовать из String в int в строке 5. Вопрос требует, чтобы я создал экземпляр массива имен с параметром размера. Как мне это исправить?
class ProgClass{
private String name[];
public ProgClass(int size){
this.name = new int[size];
}
Затем я хотел выполнить поиск по индексу, запросив ввод данных пользователем:
int cnt = cnt.nextInt
System.out.println("Name "+cnt+" is " + name[cnt-1]);
есть ли способ сделать это?
Какую часть ошибки вы не понимаете?
Вы делаете String[] name = new int[size]. Ты видишь проблему?
А простой опечатка? Должен быть this.name = new String[size]; (обратите внимание на String вместо int)
А) Я обновил свой ответ. Теперь. Но, пожалуйста, не впадайте в пинг-понг «тогда давайте зададим еще один вопрос». Вы задали вопрос, вы получили ответ, поэтому, пожалуйста, рассмотрите принимать как один из ответов. Б) на вашей стороне есть заблуждение: это сообщество - не репетиторская служба, где вы постоянно задаете вопросы, на которые можно легко ответить, следуя хорошим книгам или руководствам. Итак, пожалуйста: также обратитесь к центр помощи, чтобы узнать, как / что спросить здесь.




Сообщение должно быть ясным: массив строк не является массивом int.
this.name = new String[size];
это то, что вам нужно. Вам нужен параметр "int", поскольку вы хотите передать размер в new String[], но все же ваша цель - создать массив для строк, а не для целых чисел!
Во второй части проявляется ваша настоящая проблема: вы что-то изобретаете.
int cnt = cnt.nextInt не имеет смысла.
Думаю, вы имели в виду что-то вроде:
Scanner reader = new Scanner(System.in);
System.out.print("Enter an integer followed by <enter>: ");
int i = reader.readInt();
Вы объявили его как массив String, но затем назначили его новому массиву int.
this.name = new String[size];
Мне это кажется опечаткой. Но проблема возникает из-за того, что параметр размера - это целочисленный размер, который вы хотите, чтобы массив String был. Но он был закодирован как, сделайте мой массив String теперь равным новому массиву int, который имеет размер, который я передал в метод. Это не то, что вам нужно.
Вы пытаетесь создать экземпляр массива String? В строке 5 вы пытаетесь присвоить this.name как массив целых чисел размера «size».
Если вы измените эту строку на
this.name = новая строка [размер];
Это сработает. Однако отдельные записи все равно будут нулевыми.
new String[size]