Java - Anagrama en JAVA sin arrays

 
Vista:
sin imagen de perfil

Anagrama en JAVA sin arrays

Publicado por luis (2 intervenciones) el 22/11/2017 01:03:27
Buenas, tengo un problema con mi código, es el siguiente:
El problema es que al introducir ud y bw me sale que son anagramas y no lo son, ud en la tabla ascii vale 100 y bw igual, como podría solucionar eso ?

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
import java.util.Scanner;
public class anagrama {
	public static void main(String[] args) {
		String p1="";
		String p2="";
		String aux="";
		int palabra1=p1.length(),palabra2=p2.length(),cont1=0,cont2=0;
		Scanner sc=new Scanner(System.in);
		System.out.println("Introduce una palabra: ");
		p1=sc.nextLine();
		System.out.println("Introduce otra palabra: ");
		p2=sc.nextLine();
 
		if (p1.length()==p2.length()) {
			for (int i = 0; i < p1.length(); i++) {
				if (p1.charAt(i)==p2.charAt(i)) {
					aux+=p1.charAt(i);
				}
			}
			for (int j = 0; j < p2.length(); j++) {
			}
			if (aux.equals(p1)) {
				System.out.println("Son iguales");
				System.out.println("*********************************************");
			}
		}else{
			System.out.println("Las palabras no tienen la misma longitud");
			System.out.println("*********************************************");
		}
 
 
		for (int anagramaPalabra1 = 0; anagramaPalabra1 < p1.length(); anagramaPalabra1++) {
			cont1+=p1.toLowerCase().charAt(anagramaPalabra1);
		}
		for (int anagramaPalabra2 = 0; anagramaPalabra2 < p2.length(); anagramaPalabra2++) {
			cont2+=p2.toLowerCase().charAt(anagramaPalabra2);
		}
 
		if (cont1==cont2) {
			System.out.println("Las palabras "+p1.trim()+" y "+p2.trim()+" son anagramas");
		}else{
			System.out.println("Las palabras "+p1.trim()+" y "+p2.trim()+" no son anagramas");
		}
 
	}
 
}
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
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Anagrama en JAVA sin arrays

Publicado por Andrés (340 intervenciones) el 22/11/2017 02:31:38
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
public class Anagrama {
 
	static int contarApariciones(char caracter, String string1) {
 
		int contador = 0;
 
		for(int i = 0;i < string1.length(); i++) {
 
			if(caracter == string1.charAt(i)) {
 
				contador++;
 
			}
		}
 
		return contador;
 
	}
 
	static boolean esAnagrama(String string1, String string2) {
 
		boolean result = true;
		boolean stop = false;
 
		int i = 0;
 
 
		while(!stop && i < string1.length()) {
 
			char c = string1.charAt(i);
 
			if('~' == c) {
 
				i++;
				continue;
 
			}
 
			if(contarApariciones(c, string1) == contarApariciones(c, string2)) {
 
				string1 = string1.replaceAll(Character.toString(c), "~");
				string2 = string2.replaceAll(Character.toString(c), "~");
 
				i++;
 
			}else {
 
				stop = true;
				result = false;
 
			}
 
 
		}
 
		return result;
 
	}
 
	public static void main(String[] args) {
 
		Scanner sc=new Scanner(System.in);
		System.out.println("Introduce una palabra: ");
		String p1=sc.nextLine();
		System.out.println("Introduce otra palabra: ");
		String p2=sc.nextLine();
 
		p1 = p1.replaceAll("^[^a-zA-Z0-9]+|[^a-zA-Z0-9]+|\\s+$", "");
		p2 = p2.replaceAll("^[^a-zA-Z0-9]+|[^a-zA-Z0-9]+|\\s+$", "");
 
		boolean result = esAnagrama(p1.toLowerCase(),p2.toLowerCase());
		System.out.println("La palabras "+p1+ " y " +p2 +((result)?"":" no")+" son"+ "anagrama");
 
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Anagrama en JAVA sin arrays

Publicado por luis (2 intervenciones) el 22/11/2017 15:47:24
Podría ser sin constructores ?
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