Foros del Web » Programación para mayores de 30 ;) » Java »

comparar variable numerica con posicion de array

Estas en el tema de comparar variable numerica con posicion de array en el foro de Java en Foros del Web. clase preguntas: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Java: Ver original package preguntados ;   public class Preguntas {         private String [ ] preguntasDeportes ...
  #1 (permalink)  
Antiguo 29/06/2014, 18:56
 
Fecha de Ingreso: octubre-2012
Mensajes: 202
Antigüedad: 12 años, 1 mes
Puntos: 0
comparar variable numerica con posicion de array

clase preguntas:
Código Java:
Ver original
  1. package preguntados;
  2.  
  3. public class Preguntas {
  4.    
  5.     private String[] preguntasDeportes = new String[4];
  6.  
  7.  
  8.  
  9.     public Preguntas() {
  10.        
  11.     }
  12.  
  13.  
  14.  
  15.     void  preguntas (){
  16.         preguntasDeportes [0] = "El segundo nombre del jugador de Boca Junior Juan Riquelme es Roman?";
  17.         preguntasDeportes [1] = "Cuantos campeonatos mundiales tiene la seleccion de futbol de brasil?" ;
  18.         preguntasDeportes [2] = "Cuantos cambios se pueden realizar en un partido de futbol 11?" ;
  19.         preguntasDeportes [3] = "Quien fue el tecnico mas ganador del Club Atletico Boca Juniors";
  20.         preguntasDeportes [4] = "En que clubes Argentinos jugo el futbolista Fernando Gago?";
  21.        
  22.    
  23.     }
  24.  
  25.  
  26.  
  27.     public String[] getPreguntasDeportes() {
  28.         return preguntasDeportes;
  29.     }
  30.  
  31.  
  32.  
  33.     public void setPreguntasDeportes(String[] preguntasDeportes) {
  34.         this.preguntasDeportes = preguntasDeportes;
  35.     }
  36.  
  37.  
  38.  
  39.     public String[] getPreguntasHistoria() {
  40.         return preguntasHistoria;
  41.     }
  42.  
  43.  
  44.  
  45.     public void setPreguntasHistoria(String[] preguntasHistoria) {
  46.         this.preguntasHistoria = preguntasHistoria;
  47.     }
  48.  
  49.  
  50.  
  51.     public String[] getPreguntasArte() {
  52.         return preguntasArte;
  53.     }
  54.  
  55.  
  56.  
  57.     public void setPreguntasArte(String[] preguntasArte) {
  58.         this.preguntasArte = preguntasArte;
  59.     }
  60.  
  61.  
  62.  
  63.     public String[] getPreguntasGeografia() {
  64.         return preguntasGeografia;
  65.     }
  66.  
  67.  
  68.  
  69.     public void setPreguntasGeografia(String[] preguntasGeografia) {
  70.         this.preguntasGeografia = preguntasGeografia;
  71.     }
  72.  
  73.  
  74.  
  75.     public String[] getPreguntasEntretenimiento() {
  76.         return preguntasEntretenimiento;
  77.     }
  78.  
  79.  
  80.  
  81.     public void setPreguntasEntretenimiento(String[] preguntasEntretenimiento) {
  82.         this.preguntasEntretenimiento = preguntasEntretenimiento;
  83.     }
  84.  
  85.  
  86.  
  87.     public String[] getPreguntasCiencia() {
  88.         return preguntasCiencia;
  89.     }
  90.  
  91.  
  92.  
  93.     public void setPreguntasCiencia(String[] preguntasCiencia) {
  94.         this.preguntasCiencia = preguntasCiencia;
  95.     }
  96. }

clase inicio:
Código Java:
Ver original
  1. int numero = 1;

como hago para buscar en la clase preguntas la posicion del array que tengo ingresada en la variable numero

resumen quiero buscar NUMERO en el array.encontrar esa posicion e imprimirla

si me pueden ayudar estare muy agradecido. gracias!!
  #2 (permalink)  
Antiguo 29/06/2014, 21:32
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: comparar variable numerica con posicion de array

Hola,

Suponte tienes este arreglo:

Código Java:
Ver original
  1. String[] cosas = { "mesa","silla","impresora","computador" };

Quieres acceder a una posicion del arreglo ?

Código Java:
Ver original
  1. int numero = 1;
  2.         System.out.println(cosas[numero]);  // accedo a un indice numero del array cosas


Quieres saber si algo existe en un arreglo ?

Código Java:
Ver original
  1. boolean existe;
  2.         existe = java.util.Arrays.asList(cosas).contains("impresora");
  3.         System.out.println(existe);


Quieres saber la posicion de algo que buscas en un arreglo ?

Código Java:
Ver original
  1. int pos;
  2.         pos = java.util.Arrays.asList(cosas).indexOf("impresora");
  3.         System.out.println("Encontrado en posicion "+pos);

<< te devuelve (-1) en caso de no ser encontrado


Analiza este ejemplo que te hice:

Código Java:
Ver original
  1. public class test {
  2.  
  3.     public static void main(String[] args) {
  4.  
  5.         String[] nombres = new String[10];
  6.         String[] cosas = { "mesa","silla","impresora","computador" };
  7.  
  8.  
  9.         int numero = 1;
  10.         System.out.println(cosas[numero]);  // accedo a un indice
  11.  
  12.         // busqueda
  13.         int pos;
  14.         pos = java.util.Arrays.asList(cosas).indexOf("impresora");
  15.         System.out.println("Encontrado en posicion "+pos);
  16.  
  17.         //otra busqueda
  18.         boolean existe;
  19.         existe = java.util.Arrays.asList(cosas).contains("impresora");
  20.         System.out.println(existe);
  21.  
  22.     }
  23.  
  24. }

Por otro lado..... tu clase Cuestionario creo deberia ser re-formulada...... y para contestar una pregunta en el foro de PHP hice algo que te podria servir...... es muy similar a Java...... creo entenderas la idea de como funciona y hacer algo parecido o aun mejor:

Código PHP:
Ver original
  1. <?php
  2.  
  3. /*
  4.     @author: Pablo Bozzolo (italico76) 
  5. */
  6. Class PreguntaCuestionario implements Countable, Iterator
  7. {
  8.     private $_pregunta = NULL;
  9.     private $_respuestas  = [];
  10.     private $_respuesta_correcta = null;
  11.  
  12.    
  13.     public function __construct($pregunta)
  14.     {
  15.         // texto de la pregunta
  16.         $this->_pregunta=$pregunta;
  17.     }
  18.        
  19.     public function getPregunta()
  20.     {
  21.         return $this->_pregunta;
  22.     }
  23.    
  24.     // alias de getPregunta
  25.     public function getNombre()
  26.     {
  27.         return $this->_pregunta;
  28.     }
  29.    
  30.     // una posible repuesta
  31.     public function addRespuesta($respuesta)
  32.     {
  33.         $this->_respuestas[] = $respuesta;
  34.         return $this;
  35.     }
  36.    
  37.     // posibles repuestas
  38.     public function addRespuestas(array $respuestas)
  39.     {
  40.         foreach ($respuestas as $respuesta)
  41.             $this->_respuestas[] = $respuesta; 
  42.            
  43.         return $this;
  44.     }
  45.        
  46.     // la respuesta considerada 'correcta', si la hay
  47.     // posicion como rango {1...N}
  48.     public function setRespuestaCorrecta($posicion)
  49.     {
  50.         $this->_respuesta_correcta = $this->_respuestas[$posicion-1];
  51.         return $this;
  52.     }
  53.    
  54.     public function getRespuestaCorrecta()
  55.     {
  56.         return $this->_respuesta_correcta;
  57.     }
  58.  
  59.     // desordena respuestas
  60.     public  function desordenar()
  61.     {
  62.         shuffle($this->_respuestas);
  63.         return $this;
  64.     }
  65.    
  66.     /* Iterator */
  67.     function rewind() {        
  68.         reset($this->_respuestas);
  69.     }
  70.  
  71.     public function current()
  72.     {
  73.         return current($this->_respuestas);
  74.     }
  75.  
  76.     public function key()
  77.     {        
  78.         return key($this->_respuestas);
  79.     }
  80.  
  81.     public function next()
  82.     {
  83.         next($this->_respuestas);        
  84.     }
  85.  
  86.     public function valid()
  87.     {  
  88.         return isset($this->_respuestas[$this->key()]);
  89.     }
  90.    
  91.     public function printMe()
  92.     {
  93.         $out = $this->getNombre()."\n\n";
  94.    
  95.         foreach ($this->_respuestas as $option)        
  96.             $out .= "( ) $option\n";
  97.        
  98.         $out .= "\n(RTA: ".$this->getRespuestaCorrecta().")\n\n";          
  99.        
  100.         return $out;   
  101.     }
  102.    
  103.     public function __toString()
  104.     {      
  105.         return $this->printMe();       
  106.     }
  107.    
  108.     /* Countable */
  109.     public function count()
  110.     {  
  111.         return count($this->_respuestas);
  112.     }      
  113.  
  114. }
  115.  
  116.  
  117. Class Cuestionario implements Countable, Iterator
  118. {
  119.     private $_nombre = NULL;
  120.     private $_preguntas= array();
  121.     private $_mode = NULL;
  122.        
  123.     /*
  124.         @param nombre del cuestionario     
  125.         @return void   
  126.     */ 
  127.     public function __construct($nombre)
  128.     {          
  129.         $this->_nombre=$nombre;
  130.     }
  131.    
  132.     public function getNombre()
  133.     {
  134.         return $this->_nombre;
  135.     }
  136.  
  137.     public function addPregunta(PreguntaCuestionario $pregunta)
  138.     {  
  139.         $this->_preguntas[]= $pregunta;    
  140.         return $this;
  141.     }
  142.  
  143.     // desordena preguntas
  144.     public function desordenar($tambien_respuestas=true)
  145.     {
  146.         shuffle($this->_preguntas);
  147.         if ($tambien_respuestas)
  148.             foreach ($this->_preguntas as $pregunta)
  149.                 $pregunta->desordenar();
  150.        
  151.         return $this;
  152.     }
  153.  
  154.     /* Iterator */
  155.     public function rewind() {        
  156.         reset($this->_preguntas);
  157.     }
  158.  
  159.     public function current()
  160.     {
  161.         return current($this->_preguntas);
  162.     }
  163.  
  164.     public function key()
  165.     {        
  166.         return key($this->_preguntas);
  167.     }
  168.  
  169.     public function next()
  170.     {
  171.         next($this->_preguntas);        
  172.     }
  173.  
  174.     public function valid()
  175.     {  
  176.         return isset($this->_preguntas[$this->key()]);
  177.     }
  178.    
  179.     /* Countable */
  180.     public function count()
  181.     {  
  182.         return count($this->_preguntas);
  183.     }
  184.    
  185.        
  186.     // para consola
  187.     public function __toString()
  188.     {
  189.         $out = "Cuestionario: {$this->_nombre}\n\n";
  190.        
  191.         foreach ($this->_preguntas as $pregunta)           
  192.             $out .= printf ("%s\n",$pregunta->printMe());
  193.        
  194.         return $out;   
  195.     }
  196.  
  197.     // para generar subgrupos de preguntas de N en M
  198.     public function getN($n)
  199.     {
  200.         if ($n>count($this->_preguntas))
  201.             throw new Expcetion ("No hay tantas ($n) preguntas!");
  202.        
  203.         for ($i=0;$i<$n;$i++)
  204.             $copia[] = $this->_preguntas[$i];
  205.            
  206.         return $copia;
  207.     }
  208.    
  209. }
  210.  
  211. // creo Cuestionario:
  212.  
  213. $pregs = new Cuestionario("America");
  214.  
  215. $pregs  ->addPregunta(
  216.             (new PreguntaCuestionario("Cuando los europeos descubrieron oficialmente de America ?"))
  217.             ->addRespuestas([1942,1542,1492])
  218.             ->setRespuestaCorrecta(3)
  219.             )
  220.  
  221.         ->addPregunta( 
  222.             (new PreguntaCuestionario("Quien era Atahuala ?"))
  223.             ->addRespuestas(["un espanol conquistador","un jeque americano"])      
  224.             ->setRespuestaCorrecta(2)
  225.             )
  226.            
  227.         ->addPregunta( 
  228.             (new PreguntaCuestionario("Que fue causal de mas muerte de indigenas?"))
  229.             ->addRespuestas(["los asesinatos","las enfermedades traidas desde Europa"])    
  230.             ->setRespuestaCorrecta(2)
  231.             )  
  232.        
  233.         ->addPregunta( 
  234.             (new PreguntaCuestionario("Con que nombre se celebra el dia del descubrimiento?"))
  235.             ->addRespuestas(["Dia de la Raza","Dia del amigo","Dia del descrumiento"])     
  236.             ->setRespuestaCorrecta(1)
  237.             )      
  238.            
  239.         ->addPregunta( 
  240.             (new PreguntaCuestionario("De que nacionalidad era Cristobal Colon ?"))
  241.             ->addRespuestas(["No se sabe con certeza","italiano","portugues","ingles"])    
  242.             ->setRespuestaCorrecta(1)
  243.            
  244.             )->desordenar();
  245.  
  246.            
  247. // Preparacion de examenes como variaciones del mismo cuestionario
  248.  
  249. $examenes = [];
  250. $examenes[] = $pregs->desordenar()->getN(3);
  251. $examenes[] = $pregs->desordenar()->getN(3);
  252. $examenes[] = $pregs->desordenar()->getN(3);
  253.  
  254. $nombre = $pregs->getNombre();
  255.  
  256. foreach ($examenes as $key => $examen)
  257. {
  258.     echo "<h3>Cuestionario: $nombre (version ".($key+1).")</h3>";
  259.    
  260.     foreach ($examen as $pregunta)
  261.     {  
  262.         echo "<span>".$pregunta->getNombre()."</span><p/>";
  263.    
  264.         foreach ($pregunta as $option)         
  265.             echo "<input  type=\"radio\" name=\"{$nombre}[]\" value=\"\"/>{$option}</option><p/>";     
  266.             //echo $pregunta->getRespuestaCorrecta();
  267.         echo "<br/>";  
  268.     }
  269.     echo "<p/>---------------------------------------------<p/>";
  270. }
__________________
Salu2!

Última edición por Italico76; 29/06/2014 a las 22:07
  #3 (permalink)  
Antiguo 30/06/2014, 07:14
 
Fecha de Ingreso: octubre-2012
Mensajes: 202
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: comparar variable numerica con posicion de array

muchisimas gracias!! me fue muy util tu ayuda. ahora te hago una prgunta mas si no es molestia..

aca busca la posicion de un array donde esta "impresora"
ahora si quisiera buscar la posicion de un array donde esta
la variable BUSCAR ?
ahi agregue la variable buscar al codigo

Código Java:
Ver original
  1. int buscar=3;
  2.         int pos;
  3.         pos = java.util.Arrays.asList(cosas).indexOf("impresora");
  4.         System.out.println("Encontrado en posicion "+pos);

me fuiste de mucha ayuda ojala puedas resolverme esta inquietud tambien
  #4 (permalink)  
Antiguo 30/06/2014, 21:20
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: comparar variable numerica con posicion de array

Seria lo mismo..... excepto que si quieres buscar numeros.... el arreglo es de numeros enteros (Integer)

Cita:
Integer[] cantidades = {2,5,1,3,20,55 };
__________________
Salu2!

Etiquetas: clase, posicion, string, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:17.