Это тренировка для университета. Программа состоит в подсчете/чтении числа квадратов на листе (где размер задан пользователем), квадраты представлены «#», а пустое пространство - «.».Чтение символов с ввода
public class Quadrado {
public static void main(String[] args){
int flag=0, l=0, c=0;
String bla;
Scanner in = new Scanner(System.in);
flag = in.nextInt();
l = in.nextInt();
c = in.nextInt();
char [][] folha = new char[l][c];
while(in.hasNext()==true){
for (int i=0; i<l; i++){
for (int x=0; x<c; x++){
bla = in.nextLine();
folha[i][x] = bla.charAt(x);
}
}
}
if(flag==1){
contador(folha,in);
}
}
public static void contador(char[][] folha, Scanner in){
int conta=0, l=0, c=0;
for (int i=0; i<l; i++){
for (int x=0; x<c; x++){
if (folha[i][x]=='#'){
conta++;
}
}
}
System.out.print(conta);
}
}
Так затмение дает мне ошибки на folha[i][x] = bla.charAt(x)
, сначала я должен был это следующим образом: folha[i][x] = in.next().charAt(x)
, но он дает ошибку, что я не помню, так что мой друг сказал, что использовать объект подобного теперь, но все равно идет не так. При выполнении этого, она позволяет вставлять флаг и размер листа, но как только вы закончите вставки первой экс линии: ###
это дает мне:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at java.lang.String.charAt(Unknown Source) at Quadrado.main(Quadrado.java:21)
Это также дает мне ошибку при вызове метод и предлагаемое решение eclipse создавали тот же метод.
Надеюсь, вы, ребята, можете вести меня здесь.
Пожалуйста, добавьте информацию о * полном вводе *, который вы используете (включая 'флаг',' l' и 'c'). Что такое 'флаг'? – RealSkeptic
Я бы начал с наименования моих переменных более описательно, чем 'bla'. – JonasCz
Вы должны переместить свой 'bla = in.nextLine();'. К внешнему циклу. Вы потеряете данные ввода, если сохраните его во внутреннем цикле. – Tom