Isso é uma novidade p/ mim:
já que o Exception é um IndexOutOfBoundsException, no seu exemplo, se o
String tiver um ' \0' character, ele seria imprimido, então modificando:
System.out.print(test.charAt(x++));
para:
System.out.println((int)test.charAt(x++));
deveria imprimir 0 como o ultimo int, mas não faz
O String guarda o valor dele assim:
char value[];
porem a classe Array é utilizado para saber o tamanho do array por exemplo:
value.length = 5 no nosso exemplo com "teste"
porem
char value[] = {'t', 'e', 's', 't', 'e'};
value.lengt == 5
em C/C++ não existe um classe array que faz isso para vc
char teste[5];
strcpy("teste", teste);
do{
printf("%s", teste);
} while(true);
o outoput disso não seria:
teste
mas seria algo assim:
teste¨%$%¨(%¨(¨%%D&%¨#DDT&*(Y * *Y(&¨¨&T&¨¨TV*R%¨R
até por acaso um '\0' seria achado na mémoria simplismente porque o array cd chars não
tem espaço para o terminador. Só funciona com char teste[6];
Isso é um dos maiores problemas de C/C++ e possibilita 80% dos exploits no segurança
de qualquer OS.
sven
Jason Douglas de Oliveira wrote:
> Boa Tarde Carlos.
>
> Neste caso você só tem a matriz sem finalizador.
> tente isso:
> String test = "teste";
> int x=0;
> try{
> do{
> System.out.print(test.charAt(x++));
> }while(true);
> }catch(Exception __e){
> System.out.println(__e.getMessage());
> }
> quando o erro ocorre o char('\0') não é impresso.
>
> Abraços.
>
>
>
>
> ----- Original Message -----
> From: Carlos Alberto Viana Correia - SAO <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Friday, May 11, 2001 10:36 AM
> Subject: RES: [java-list] como sei o final de uma string
>
>
> Acesso pelo menor preço do mercado! R$ 14,90 nos 3 primeiros meses!
> ASSINE AGORA! http://www.bol.com.br/acessobol/
>
>
> é \0 mesmo no último caracter..
>
> -----Mensagem original-----
> De: jspdeveloper [mailto:[EMAIL PROTECTED]]
> Enviada em: sexta-feira, 11 de maio de 2001 09:35
> Para: [EMAIL PROTECTED]
> Assunto: [java-list] como sei o final de uma string
>
>
> pessoal, bom dia!
>
> ontem me fizeram uma pergunta q nao soube responder: como sabemos o final de
> uma string.
> no C , nao me lembro bem, mas eh algo parecido com \0.
>
> No java a string eh uma matriz de caracteres, pelo que entendi. Mas no final
> dessa matriz eu tenho caracter finalizador ou eh soh a matriz mesmo?
>
> 0brigad0!
>
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
> dúvidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
> dúvidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
>
>
>
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
> dúvidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
>
>
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------