[RESOLVIDO]Problema com condicional

5 respostas
C

Estou com a seguinte classe com um método, este método recebe 2 strings que são IP/Mascara de rede em Binarios.
Esta recebendo 11000000101010000000000100000001 (equivalente a 19216811)
11111111111111110000000000000000(equivalente a (25525500)

Não sei por que, mas está sempre retornando
00000000000000000000000000000000
Por algum motivo ele sempre cai no else, alguém sabe explicar por que?
Obrigado

public class Calculos {

	public String Calc(String ip, String mask) {
		
		String endstring ="";
		for (int i = 0; i < 32; i++) {
			if (ip.charAt(i)==1 && mask.charAt(i)==1) {
				
				endstring = endstring+"1";
			} else {
				endstring = endstring+"0";
			}
		}
		
		
		return endstring;

	}

5 Respostas

drsmachado

Pode ser bobagem, mas

if (ip.charAt(i)==1 && mask.charAt(i)==1) {
C

drsmachado:
Pode ser bobagem, mas

if (ip.charAt(i)==1 && mask.charAt(i)==1) {


Não entendi .
Tipo ele faz um if e ve se o char na posição i da string é 1 e se o char na posição i do mask é 1 concatena 1 a String;
Logo com os números que passei, alguns entrariam nesta condição.

drsmachado

CaioIncau:
drsmachado:
Pode ser bobagem, mas

if (ip.charAt(i)==1 && mask.charAt(i)==1) {


Não entendi .
Tipo ele faz um if e ve se o char na posição i da string é 1 e se o char na posição i do mask é 1 concatena 1 a String;
Logo com os números que passei, alguns entrariam nesta condição.

Veja bem, você compara o caractere ‘1’ com o int 1. Eles são iguais?
Eu respondo: não.
Isso

if (ip.charAt(i)=='1' && mask.charAt(i)=='1') {

seria o correto

C

Ah, Muito Obrigado.
É que não trabalhava com char desde quando estudava primitivos hehe.

drsmachado

CaioIncau:
Ah, Muito Obrigado.
É que não trabalhava com char desde quando estudava primitivos hehe.

Nem se preocupe.
Porém, apenas um simples debug resolveria o problema.

Criado 23 de maio de 2012
Ultima resposta 23 de mai. de 2012
Respostas 5
Participantes 2