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

[SOLUCIONADO] Como obtener las posiciones de un caracter

Estas en el tema de Como obtener las posiciones de un caracter en el foro de Java en Foros del Web. Hola me gustaría pedir ayuda debido a que he buscado por todos lados una solución y no la encuentro. Me estanque en un programa que ...
  #1 (permalink)  
Antiguo 19/02/2014, 03:18
 
Fecha de Ingreso: febrero-2014
Ubicación: Chiapas
Mensajes: 10
Antigüedad: 10 años, 10 meses
Puntos: 0
Exclamación Como obtener las posiciones de un caracter

Hola me gustaría pedir ayuda debido a que he buscado por todos lados una solución y no la encuentro.

Me estanque en un programa que estoy haciendo en netbeans.

El detalle es que en mi programa tengo que escribir una cadena, luego buscar una letra y buscar su posición en la cadena eso es fácil con un "indexOf".

El problema reside en que si la letra esta repetida por ejemplo: Refrigerador y busco la [r] el programa me tiene que mostrar las diferentes posiciones separadas por coma.
Ejemplo:

Refrigerador -> busca: r

posiciones: 1,4,8,12

Casa -> busca: s
posiciones: 3

Logre conseguir 2 posiciones con este código pero no logro conseguir mas y me doy cuenta que esta mal y no se que hacer.

Cita:

num1 = cadena.indexOf(buscar letra);
num2 = cadena.lastIndexOf(buscar letra);

Posicion(String.valueOf(num1+", "+num2));
  #2 (permalink)  
Antiguo 19/02/2014, 03:55
 
Fecha de Ingreso: febrero-2014
Ubicación: Chiapas
Mensajes: 10
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Como obtener las posiciones de un caracter

Con el fin de hacer mas entendible mi problema proporciono código e interfaz que estoy manejando con sus respectivas variables en color rojo.


[URL="https://scontent-b-dfw.xx.fbcdn.net/hphotos-frc1/v/t1/1947626_10202657584456349_379280838_n.jpg?oh=a605a 4863c2eea2f80e2232cfc3f1652&oe=53729806"][HTML]Esta es una imagen[/HTML] [/URL]

Código:
Private void VerActionPerformed(java.awt.event.AtionEvent) evt
{
int num, num1, num2  = 0;
String longitud, cant, indice , vuscar, v2 , v3;
int b;



    Cadena.getText();
    E.setText(Cadena.getText());
    
    
    longitud = Cadena.getText();
    num = longitud.length();
    cant =  String.valueOf(num);
    L.setText(cant);
    
    
    vuscar = Cadena.getText();
    v2 = Buscar.getText();

    
      num1 = vuscar.indexOf(v2);
  num2 = vuscar.lastIndexOf(Buscar.getText());
 indice = String.valueOf(num1);
Pos.setText(num1 + ", "+ num2);
     
    
    
    Buscar.getText();
    B.setText(Buscar.getText());
}
  #3 (permalink)  
Antiguo 19/02/2014, 05:43
 
Fecha de Ingreso: septiembre-2007
Mensajes: 152
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Como obtener las posiciones de un caracter

Buenas,

si te he entendido bien es esto:
te dice las veces que existe una letra en una cadena (es case sensitive) pero si quieres que no distinga entre mayus y minus, no te costará mucho!

Código Java:
Ver original
  1. public static void main(String[] args) {
  2.         String cadena = "refrigerador";
  3.         char letra = 'r';
  4.         String pos = "";
  5.        
  6.         for (int i = 0; i < cadena.length(); i++)
  7.             if(cadena.charAt(i) == letra)
  8.                 pos += i+",";
  9.        
  10.         System.out.println(pos);
  11.     }


Un saludo!
  #4 (permalink)  
Antiguo 19/02/2014, 09:26
 
Fecha de Ingreso: febrero-2014
Ubicación: Chiapas
Mensajes: 10
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Como obtener las posiciones de un caracter

Cita:
Iniciado por darkram Ver Mensaje
Buenas,

si te he entendido bien es esto:
te dice las veces que existe una letra en una cadena (es case sensitive) pero si quieres que no distinga entre mayus y minus, no te costará mucho!

Código Java:
Ver original
  1. public static void main(String[] args) {
  2.         String cadena = "refrigerador";
  3.         char letra = 'r';
  4.         String pos = "";
  5.        
  6.         for (int i = 0; i < cadena.length(); i++)
  7.             if(cadena.charAt(i) == letra)
  8.                 pos += i+",";
  9.        
  10.         System.out.println(pos);
  11.     }


Un saludo!
Muchas gracias ya me estaba volviendo loco pensando que no encontraría la solución.

PD: ¿Como puedo hacer que no me distinga entre mayúsculas y minúsculas?
  #5 (permalink)  
Antiguo 19/02/2014, 10:29
 
Fecha de Ingreso: septiembre-2007
Mensajes: 152
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Como obtener las posiciones de un caracter

cambia esta linea

if(cadena.charAt(i) == letra)

por

if(String.valueOf(cadena.charAt(i)).toUpperCase(). equals(String.valueOf(letra).toUpperCase()))
  #6 (permalink)  
Antiguo 19/02/2014, 10:57
 
Fecha de Ingreso: febrero-2014
Ubicación: Chiapas
Mensajes: 10
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Como obtener las posiciones de un caracter

Muchas gracias me has ayudado mucho.

Etiquetas: netbeans, posiciones, programa, string
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 08:57.