Java - Como cambiar un string por otro pero en determiandas posiciones??

 
Vista:

Como cambiar un string por otro pero en determiandas posiciones??

Publicado por Diego (2 intervenciones) el 10/09/2011 23:23:46
Hola...
Estoy haciendo un trabajo en el que tengo que crear el típico juego de "Ahorcado", mi consulta es:


si el usuario acierta una de las letras (o varias si la letra se repite) y ya ubique en que posición de la palabra a adivinar se encuentra la letra, como puedo sustituir esa letra en la cadena en esa posicion específica???

ejemplo

String palabra = "Automovil";
String resultado = "_________";

el usuario digita la letra "o":
entonces el resultado que quiero es:

resultado = ___o_o___

sustituir la linea por la letra en la posicion que corresponde!!
ya intente con

resultado = resultado.replace("_",lo que digito el usuario);

pero por razones obvias me cambia todas las lineas!!

ayuda por favor!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Como cambiar un string por otro pero en determiandas posiciones??

Publicado por bj penn (8 intervenciones) el 11/09/2011 21:14:59
public String [] comparar(String palabra, char c){
ArrayList<String> lista= new ArrayList<String>();
int tam=palabra.length()-1;
ArrayList<Integer> indice= new ArrayList<Integer>();
String [] resultado=new String[tam+1];

for(int a=0; a<=tam; a++){
if(palabra.charAt(a)==(c)){
indice.add(a);
}
}
for(int b=0; b<=indice.size()-1; b++){
resultado[indice.get(b)]=c+"";
}


return resultado;
}

ahi tendras que añadir las vidas del juego por cada error que tenga restarle 1 vida
cualquier duda comentarla...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como cambiar un string por otro pero en determiandas posiciones??

Publicado por bj penn (8 intervenciones) el 12/09/2011 21:30:27
mejorando el code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public String [] comparar(String palabra, char c){
ArrayList<String> lista= new ArrayList<String>();
int tam=palabra.length()-1;
String [] resultado=new String[tam+1];
 
for(int a=0; a<=tam; a++){
if(palabra.charAt(a)==(c)){
resultado[a]=c+"";
 
}
}
 
return resultado;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como cambiar un string por otro pero en determiandas posiciones??

Publicado por bj penn (8 intervenciones) el 12/09/2011 21:37:13
hasta ahora queda asi el code pero no ejecuta muy bien bueno espero comentarios constructivistas...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import java.util.*;
import java.io.*;
public class ahorcado {
 
private String palabra;
private String copia;
private String acertijo;
private int vidas;
File archivo;
public ahorcado(int v){
vidas=v;
}
 
public String cambiandoPalabra(String pal){
palabra=pal;
return palabra;
}
 
 public String [] comparar(char c){
        ArrayList<String> lista= new ArrayList<String>();
        int tam=palabra.length()-1;
        ArrayList<Integer> indice= new ArrayList<Integer>();
        String [] resultado=new String[tam+1];
        copia="";
 
        if(vidas==5){
            for(int z=0; z<=tam; z++){
                copia=copia+"*";
            }
            guardar("ahorcado");
        }
        copia=recuperar("ahorcado");
        System.out.println(copia);
        if(vidas>0 || palabra!=copia){
        for(int a=0; a<=tam; a++){
            if(palabra.charAt(a)==(c)){
                resultado[a]=c+"";
            }
            else{
            resultado[a]="*";
 
            }
        }
        for(int b=0; b<=tam; b++){
         copia=copia+resultado[b];
        }
        guardar("ahorcado");
        vidas--;
    }
 
 
        return resultado;
    }
 
    public void guardar(String nombreTabla){
 
        archivo= new File ("D:\\"+nombreTabla+".txt");
       try{
 
       FileWriter escritor= new FileWriter(archivo);
       BufferedWriter auxescritor= new BufferedWriter(escritor);
       auxescritor.write(copia);
 
       auxescritor.close();
    }
    catch(Exception e){
        e.printStackTrace();
    }
 
    }
    public String recuperar(String nombreTabla){
       ArrayList<String> almacen= new ArrayList<String>();
        archivo= new File ("D:\\"+nombreTabla+".txt");
         String linea="";
         String linea0="";
       try{
 
       FileReader leedor= new FileReader(archivo);
       BufferedReader auxLeer= new BufferedReader(leedor);
       while((linea=auxLeer.readLine())!=null){
       almacen.add(linea);
    }
 
    }
    catch(Exception e){
        e.printStackTrace();
    }
    linea0=almacen.get(0);
    return linea0;
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como cambiar un string por otro pero en determiandas posiciones??

Publicado por Diego (2 intervenciones) el 13/09/2011 05:05:07
Gracias a todos he logrado solucionarlo utilizando StringBuilder en lugar de String..
Muchas Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como cambiar un string por otro pero en determiandas posiciones??

Publicado por bj penn (8 intervenciones) el 14/09/2011 02:45:48
y como recuperar el resultado parcial...
mi solucion es guardarlo en un archivo
alguna sugerencia...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como cambiar un string por otro pero en determiandas posiciones??

Publicado por bj penn (8 intervenciones) el 13/09/2011 17:35:37
lo que yo quiero es que rescate la palabra resultado por ejemplo entrada hola y el char c= a
resultado parcial ***a
y luego rescatar ***a del documento y hacer una y otra vez el procedimiento dicho anteriormente hasta que gane o pierda vidas=0 ayuda por fa...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como cambiar un string por otro pero en determiandas posiciones??

Publicado por Jesús Salas (1 intervención) el 04/06/2016 20:25:21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class pruebas {
    public static void main(String[] args) {
 
        String e = "ejemplo";
        String respuesta="";
        char letra='e';
        char[] aux;
        int pos;
 
        for(int i=0;i<e.length();i++){
            respuesta="_".concat(respuesta);
        }
 
        System.out.println(respuesta);
 
                aux=respuesta.toCharArray();
                pos=e.indexOf(letra);
                while(pos!=-1){
                    aux[pos]=letra;
                    pos=e.indexOf(letra,pos+1);}
                respuesta=String.valueOf(aux);
 
        System.out.println(respuesta);
 
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar