Ayuda con este programa de Java array

Iniciado por riki342, 19 Abril 2016, 03:57 AM

0 Miembros y 1 Visitante están viendo este tema.

riki342

Hola, Tengo el siguiente programa en Java. Es un arreglo del tipo caracter que recibe n caracteres indicados mediante el teclado por el usuario. Lo que quiero saber es como puedo hacer para buscar un caracter. si esta imprimir su posicion y si no imprimir un mensaje que diga que no esta, mi codigo es este:


package borrador;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Arreglou {

   public static void main(String[] args) throws IOException

   {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

      int i;
      int n = 0;
      char[] A = new char[n];
      String val1;
      char val2, val3;

      System.out.println("Escribe cuantos valores tendra el arreglo");

      val1 = br.readLine();
      n = Integer.parseInt(val1);
      A = new char[n];
      int x;

      for (i = 0; i < n; i++) {
         System.out.print("Escribe la Letra " + (i + 1) + ": ");

         val2 = br.readLine().charAt(0);

         A = val2;

      }

      System.out.println("Los Caracteres En EL Arreglo Son:");

      for (i = 0; i < n; i++) {

         System.out.print("\n" + A);

      }

      System.out.println("Escribe la Letra que buscaras");

      val3 = br.readLine().charAt(0);

      for (x = 1; x < A.length; x++) {
         if (val3 == A) {

            int Posicion = x;
            System.out.println( val3 + " Esta en la posicion numero: " + Posicion);
         }
         else {
            System.out.println( val3 + " No esta en el arreglo");
         }
      }

   }
}

Zomkar

#1
Hola,

1. Usa la etiqueta de codigo
2. Puedes usar la clase String, no necesitas un array de caracteres. De esa forma tampoco necesitas pedir el tamaño previo. Tienes  un metodo que hace justo lo que tu quieres: indexOf.
3. Si fuese necesario usar array de char:
-x debe valer 0, no 1 (recuerda, recorres un array)
-en el ultimo for utilizas i como indice del Array (en el if), pero deberias utilizar x

Un saludo
Si vas a por ellos te llamarán violento.
Si explotas a cientos te verán como un ejemplo.

Jacko_Maniako

Hola,
mira si lo primordial para tu ejemplo es obtener la posición de de un caracter en  un String lo que puedes hacer sin utilizar un array es usa el metodo "indexOf"
Ej:
String str="El primer programa";
   int pos=str.indexOf('p');
lo unico que tendrias que hacer es pedir el valor del str.indexOf('X'), y validar.

te puedes apoyar con esta info que es acerca de la clase String

http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/clases1/string.htm