Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Язык программирования java

Константин 123 Ученик (83), на голосовании 1 год назад
 import java.util.Scanner; 
public class grafika{

public static void main (String args[]){
String chars = "ёйцукенгшщзхъфывапролджэячсмитьбю";
short charslen = (short)(chars.length()-1);
Scanner console = new Scanner(System.in);
System.out.println("Введите количество букв: ");
int outlen = console.nextInt();
String out = "";
for (int counter;counter out += chars[(int) Math.round(Math.random()*charslen)];
System.out.println(out);
}
}
}
ошибка: The type of the expression must be an array type but it resolved to String
ошибка в строчке out += chars[(int) Math.round(Math.random()*charslen)];
Голосование за лучший ответ
мом инс брозерс Профи (515) 1 год назад
Ошибкa возникает из-за того, что вы пытаетесь обращаться к символу в строке "chars" как к элементу массива. Вместо этого, вам нужно использовать метод charAt() для получения символа по указанному индексу. Вот исправленная версия вашего кода:
 import java.util.Scanner; 

public class grafika {
public static void main(String[] args) {
String chars = "ёйцукенгшщзхъфывапролджэячсмитьбю";
int charsLen = chars.length() - 1;

Scanner console = new Scanner(System.in);
System.out.println("Введите количество букв: ");
int outLen = console.nextInt();
String out = "";

for (int counter = 0; counter < outLen; counter++) {
out += chars.charAt((int) Math.round(Math.random() * charsLen));
}

System.out.println(out);
}
}
В этой версии кода мы заменили chars[(int) Math.round(Math.random() * charsLen)] на chars.charAt((int) Math.round(Math.random() * charsLen)) для получения символа из строки "chars" по индексу. Кроме того, мы также исправили объявления переменных "charslen" и "outlen".
Похожие вопросы