Identificador Ilegal

10 respostas
TeiTei

Galera gostria de saber pq e considerado um identificador ilegal esse codigo abaixo?

int e#;

10 Respostas

rodrigo_gomes

Pq os unicos identificadores validos são: letras, digitos, _ e $.

[]´s

ps: poderia ter pesquisado antes :wink:

T

rodrigo_gomes:
Pq os unicos identificadores validos são: letras, digitos, _ e $.

[]´s

ps: poderia ter pesquisado antes ;)

Correto, agora TeiTei veja esse Link, suas outras dúvidas que irá surgir pode estár aqui a solução!

:arrow: http://www.javafree.org/content/view.jf?idContent=85

Abraços!

TeiTei

rodrigo_gomes:
Pq os unicos identificadores validos são: letras, digitos, _ e $.

[]´s

ps: poderia ter pesquisado antes ;)

o e nao seria uma letra?

E logo apos a 1º ser valida eu nao posso colcar qualquer coisa menos espaço?

T

Olhando a JLS:

O primeiro caracter pode ser uma letra, _ ou $. Por “letra” ele entende a classe Unicode de letras, ou seja, um ideograma ou um caracter acentuado também é uma letra.
Os caracteres seguintes podem ser letras, _, $ ou dígitos. Por “dígitos” ele entende a classe Unicode de dígitos, ou seja, um dígito em árabe ou chinês também é um dígito.

TeiTei

Conclusão, isso seria possivel ou impossivel?

int e#=10;
System.out.println(e#);
T

“#” não é uma letra, segundo o padrão Unicode.

TeiTei

Sim eu compreendo mas a 1º e o e q e valida…

T

Eu disse que “os caracteres seguintes podem ser letras, dígitos , _ ou $.”

Como # não é uma letra, não é um dígito, não é _ ou $, não pode fazer parte de um identificador.

TeiTei

Entendi…valeu…

Lifeguide

Amigo,

Uma dica interessante nesse caso é utilizar os métodos abaixo:

  • isJavaIdentifierStart(char) : boolean
  • isJavaIdentifierPart(char) : boolean

Eles testam o caracter e retornam se é valido ou não.

p.s>>Ambos os métodos pertencem a classe Character e o acesso pode ser direto.

Criado 18 de dezembro de 2007
Ultima resposta 20 de mai. de 2009
Respostas 10
Participantes 5