Só uma pequena dúvida!

Oi !

Sou programador a algum tempo e estou iniciando em java, gostaria se possível tirar uma dúvida com você !!!

É o seguinte:

Tenho uma String A = "3C7C" e estou utilizando a A.substring(x,x) para pegar cada caractere. até aí tudo bem !!!

só que, quando testo se a substring é igual a "?" qualquer caractere, mesmo sendo igual ele nunca retorno verdadeiro veja o código por favor !!!

String strNumero = “3C7C”;
String strDigito;

strDigito = strNumero.substring(1,2); /// IGUAL a “C” Certo ???

strDigito = (strDigito == “C”) ? “12” : strDigito;

Acredito que não tem nenhum erro, peço para o código mostrar o conteúdo da strDigito. ele mostra o caractere C. No entanto, sempre falha no teste ou seja o teste sempre é false.

você pode dar-me uma ajuda ???

Desde já muito obrigado !!!

Primeiro,

Acho que é igual a “C7”, pois você tá pegando a 2ª e 3ª posição da String. Recomendo que use charAt() pra pegar cada caractere.

Segundo, compare Strings com o método equals() ou equalsIgnoreCase()

Exemplo:

String a = "Casa";
if (a.equals("Casa")) // true
.... 
if (a.equals("casa")) // false
....
if (a.equalsIgnoreCase("CASA")) // true

Tudo bem !!! Eu errei ao digitar na mensagem !!!

Por favor testa esse código e me fala o que está errado !!!

import java.io.*;

class ConversaoParaBaseDez
{
public static void main( String [] args )
{
int intBase = 8;
int intConversao = 0;

	String strNumero = "36174"; //3C7C";
	String strDigito = "";
	
	int intExpon = strNumero.length()-1;
	
	for (int x=0;x<=strNumero.length()-1;x++)
	{
		
		strDigito = strNumero.substring(x,x+1);
		
		strDigito = (strDigito == "A") ? "10" : strDigito;
		strDigito = (strDigito == "B") ? "11" : strDigito;
		strDigito = (strDigito == "C") ? "12" : strDigito;
		strDigito = (strDigito == "D") ? "13" : strDigito;
		strDigito = (strDigito == "E") ? "14" : strDigito;
		strDigito = (strDigito == "F") ? "15" : strDigito;
		
		intConversao += Integer.parseInt(strDigito) * (int)Math.pow(intBase,intExpon--);
		
	}
	
	System.out.println("Conversao: " + intConversao);
	
}

}

Tudo bem !!! Eu errei ao digitar na mensagem !!!

Por favor testa esse código e me fala o que está errado !!!

import java.io.*;

class ConversaoParaBaseDez
{
public static void main( String [] args )
{
int intBase = 16;
int intConversao = 0;

	String strNumero = "3C7C";
	String strDigito = "";
	
	int intExpon = strNumero.length()-1;
	
	for (int x=0;x<=strNumero.length()-1;x++)
	{
		
		strDigito = strNumero.substring(x,x+1);
		
		strDigito = (strDigito == "A") ? "10" : strDigito;
		strDigito = (strDigito == "B") ? "11" : strDigito;
		strDigito = (strDigito == "C") ? "12" : strDigito;
		strDigito = (strDigito == "D") ? "13" : strDigito;
		strDigito = (strDigito == "E") ? "14" : strDigito;
		strDigito = (strDigito == "F") ? "15" : strDigito;
		
		intConversao += Integer.parseInt(strDigito) * (int)Math.pow(intBase,intExpon--);
		
	}
	
	System.out.println("Conversao: " + intConversao);
	
}

}

Valeu !!!

Tudo bem !!! Eu errei ao digitar na mensagem !!!

Por favor testa esse código e me fala o que está errado !!!

import java.io.*;

class ConversaoParaBaseDez
{
public static void main( String [] args )
{
int intBase = 16;
int intConversao = 0;

	String strNumero = "3C7C";
	String strDigito = "";
	
	int intExpon = strNumero.length()-1;
	
	for (int x=0;x<=strNumero.length()-1;x++)
	{
		
		strDigito = strNumero.substring(x,x+1);
		
		strDigito = (strDigito == "A") ? "10" : strDigito;
		strDigito = (strDigito == "B") ? "11" : strDigito;
		strDigito = (strDigito == "C") ? "12" : strDigito;
		strDigito = (strDigito == "D") ? "13" : strDigito;
		strDigito = (strDigito == "E") ? "14" : strDigito;
		strDigito = (strDigito == "F") ? "15" : strDigito;
		
		intConversao += Integer.parseInt(strDigito) * (int)Math.pow(intBase,intExpon--);
		
	}
	
	System.out.println("Conversao: " + intConversao);
	
}

}

Valeu !!!

[quote=“Hildenilson”]strDigito = (strDigito == “A”) ? “10” : strDigito;
strDigito = (strDigito == “B”) ? “11” : strDigito;
strDigito = (strDigito == “C”) ? “12” : strDigito;
strDigito = (strDigito == “D”) ? “13” : strDigito;
strDigito = (strDigito == “E”) ? “14” : strDigito;
strDigito = (strDigito == “F”) ? “15” : strDigito;[/quote]

Naum testei seu codigo, mas esta maneira como vc esta comparando é errada.

Quando vc compara uma String com ==, na verdade vc esta comparando Endereços de Memória.

Método utilizado para comparar valores de uma String é o equals()

strDigito = (strDigito.equals("B")) ? "11" : strDigito; strDigito = (strDigito.equals("C")) ? "12" : strDigito; strDigito = (strDigito.equals("D")) ? "13" : strDigito; strDigito = (strDigito.equals("E")) ? "14" : strDigito; strDigito = (strDigito.equals("F")) ? "15" : strDigito;

Abraços, :wink: