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: :wink:](https://www.guj.com.br/images/emoji/twitter/wink.png?v=9)