nicolasserrano / CS

Computer Science
0 stars 26 forks source link

Duda practica evaluada 2 #7

Open ordenadorb18 opened 3 years ago

ordenadorb18 commented 3 years ago

Con respecto al ejercicio dos de la práctica de hoy, he utilizado dos bucles para controlar primero la posición de la letra con la que estoy trabajando (primer bucle), y el segundo para controlar con qué palabra estoy trabajando. No he podido compilar el ejercicio en java, y me indicaba que tenía este error: /Palabras2.java:7: error: cannot find symbol System.out.println(args[j].charAt[i]); ^ symbol: variable charAt location: class String 1 error / Este era mi código: public class Palabras2{ public static void main(String[] args){ int largo=args[0].length(); int longitud=args.length; for (int i=0; i<largo; i++){ for (int j=0; j<longitud; j++) { System.out.println(args[j].charAt[i]); } } } } Gracias por su atención.

nicolasserrano commented 3 years ago

El error se produce en la sentencia: System.out.println(args[j].charAt[i]); e indica que charAtno es una variable de un String. El compilador considera que estamos accediendo a una variable porque después viene un índice entre corchetes: [i], y por lo tanto considera que es un array (uno de los tipos de variables miembro de una clase). La sentencia correcta es charAt(i), ya que chartAtes un método, y sus argumentos deben ir entre paréntesis.

Es una confusión que puede proceder porque estamos accediendo a la posición de un carácter de un String que se puede pensar que es como un array, pero la forma de acceder es con una función, por lo que el argumento debe ir entre paréntesis y no corchetes, estos son solo para los arrays.