Número de caracteres?

8 respostas
D

Oi galera, voltei, bem meu problema agora é o seguinte, estou precisando pegar o número de caracteres de uma determinada coluna da minha tabela.
Assim:
Fiz um select na tabela regiao;
Então no meu if coloquei assim,

String codigo = rs.getString("COD_BRICK");
if(codigo.length.equals("1"))

se o número de caracteres total retornado for igual a 1(um), eu quero que ele jogue dentro de uma variável, o código concatenado com quatro zeros.

codbrick = rs.getString("COD_BRICK");
codbrick = "0000"+codbrick

só que estou tendom um erro de Attempt to reference method length in class java.lang.String as an instance variable, nesta linha de código
if(codigo.length.equals(“1”))

e nesta linha ele deu, codbrick = “0000”+codbrick Invalid type expression, apontando para o igual.

Um abraço.

8 Respostas

Paulo_Silveira

Erro muito comum também

a java.lang.String não tem um atributo length!!! e sim o metodo lenght()

entao use:

if(codigo.length() == 1)
D

Olá Paulo,

Vou efetua a modificação, e qualquer coisa entro em contato!!

Um abraço.
Dartanhan.

Guilherme_Silveira

e o .equals tambem nao vai funcionar
tem q ser:

if(valor.length()==1)

alias, era uma boa colocar um artigo/tutorial sobre como usar o javadoc da sun, (onde encontrar e ler), pois esses erros de saber se eh metodo ou nao, qual o nome e tal, ta tudo la

gui

D

Seria uma boa um tutorial sobre isso, facilitaria muito na hora de saber o que devo usar e o que não devo. pra mim o equal e o == eram a mesma coisa, bem pode até ser, mais um seria para métodos o outro não. seria isso mesmo ou estou escorregando na maionese.

Um abraço,
Darta.

Leonardo

Acho que esta eu sei explicar...

O operador == é utilizado para comparar a referência entre dois objetos são iguais, enquanto que o equals compara se o conteúdo, ou valores, de uma determinada variável são iguais.

Por exemplo:

public class Teste {
   public Teste() {
      String letra = "o"; 
      String s = "hello";  
      String t = "hell" + letra;  // exatamene o mesmo texto da variável s 
      if (s.equals(t)) 
           System.out.println("equivalentes"); 

      // se usarmos o == 
      if (s==t) 
         System.out.println("diferentes"); 
   }

   public static void main(String argsv[]) { Teste te = new Teste();}
}

observe que somente a mesnagem "equivalentes" é mostrada :shock: . Para os tipos primitivos como char, int, byte,etc. o == também funcionaria.

é isso aí espero ter ajudado ! :)

Guilherme_Silveira

Opa leo tudo bom?
O seu codigo esta certo sim, porem eh extremamente necessario RELEMBRAR que o metodo EQUALS soh compara objetos, isto eh nao compara primitivas que sao os: int, byte, char, long, double e float (nao necessariamente nessa ordem :)…
Para isso voce deve utilizar os comparadores normais do tipo =, >, <, !, entre outros…

Vale tambem relembrar que nem sempre o metodo == ira retornar falso para duas Strings com o mesmo valor, se elas forem retiradas da pool interna elas serao exatamente o mesmo objeto! Mais informacoes estao no artigo/tutorial sobre String e StringBuffer

Abraco

Guilherme

Leonardo

Obrigado Guilherme ! É sempre bom saber estes detalhes ! :smiley:

D

Valeu, Leo, entendi sua explicação e a complementação do Gui, muito obrigado, por enquanto está tudo ok, estou me virando aqui qualquer coisa eu grito!!

Um abraço a todos.
Darta.

Criado 9 de setembro de 2002
Ultima resposta 10 de set. de 2002
Respostas 8
Participantes 4