Problemas ao trabalhar com string e substring em Java

20 respostas
samea

Alguem ai sabe me dizer por obzequio como que eu faco para imprimir somente os primerios caracteres de uma string, quer dizer digamos eu tenho uma fase com 60 caracteres, mas so quero imprimir os 50 primeiros caracteres como eu faço isso eu tentei de varias formas e naum conseguir eu sei que tenho que fazer um for
como por exemplo ai em baixo

for (int intloop = 0; intloop <=50; intloop++){

strNovoEndereco = strendereco_leit -1;

}

explicando o que eu coloquei no for foi uma variavel chamda strNovoEndereco  que devera receber a nova string com com somente 50 caracteres da variavel strendereco_leit que por sua vez eh a variavel que recebe os dados do banco de dados

teoricamente seria assim naum eh? mas na verdade eu naum sei o que devo colocar no lugar de -1 pra merda do programa roda direito

por favor me respondam bjokas

20 Respostas

marcosharbs

assim minha querida:

String palavra = "abcdefghijlmnopqrstuvxzabcdefghijlmnopqrstuvxzabcdefghijlmnopqrstuvxz";
        String palavraCortada = "";
        
        for(int i=0; i<50; i++){
            palavraCortada += palavra.charAt(i);
        }
        
        System.out.println(palavraCortada);
sf.marcius

só coloca uma frase válida ali, ou vai dar excessão…

String fraseInteira = "frase de 60 catacteres......................";
int posIni = 0;
int posFim = 50;
// imprime apenas os 50 primeiros
String fraseTruncada = fraseInteira.subString(posIni, posFim);
System.out.println(fraseTruncada);
tlevi

String palavra = “palavracomsessentacaracteres”;

String palavraCortada = palavra.subString(0,50);

System.out.println(palavraCortada);

Roger75

Você pode usar o método substring da classe String:
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#substring(int,%20int)

Exemplo: strNovoEndereco.substring(0, 50)

A

definitivamente usar substring é a melhor opção =)

davidbuzatto

marcio, usar o substring não é mais simples? :shock:

String palavra = "abcdefghijlmnopqrstuvxzabcdefghijlmnopqrstuvxzabcdefghijlmnopqrstuvxz";
System.out.println( palavra.substring( 0, 51 ); // pega do zero ao 50. o último parâmetro não é inclusivo.

//ou melhor...
if ( palavra.length > 50 )
    System.out.println( palavra.substring( 0, 51 ) );
else
    System.out.println( palavra );

[]´s

marcosharbs

sim mais pratico mas não sei vai que é um exercicio de curso e o professor ainda não ensinou substring, por isso fiz daquele jeito com o for.

adriano_si

Não crie mais tópicos com esse título por favor…

SoluçãonovaFrase = suaFrase.substring(0, 50);

0 é a posição inicial que vc quer e 50 é o tamamho da String…

Corrijam-me se eu estiver errado…

M
davidbuzatto:
marcio, usar o substring não é mais simples? :shock:
String palavra = "abcdefghijlmnopqrstuvxzabcdefghijlmnopqrstuvxzabcdefghijlmnopqrstuvxz";
System.out.println( palavra.substring( 0, 51 ); // pega do zero ao 50. o último parâmetro não é inclusivo.

//ou melhor...
if ( palavra.length > 50 )
    System.out.println( palavra.substring( 0, 51 ) );
else
    System.out.println( palavra );

[]´s

Não entendi o porque do 0 até 51, se ela precisa de 50 caracteres...

adriano_si

aff… demora-se um pouquinho pra responder, já era… umas 30 respostas logo… hauahuahauahauau

Falow Galera…

davidbuzatto

marcobiscaro2112:

Não entendi o porque do 0 até 51, se ela precisa de 50 caracteres…

Eu expliquei no comentário logo na frente do primeiro substring.

Caso ainda tenha dúvidas, uma olhadinha de vez em quando na documentação pode ajudar.

Returns a new string that is a substring of this string. The substring begins at the specified beginIndex and extends to the character at index endIndex - 1. Thus the length of the substring is endIndex-beginIndex.

http://java.sun.com/javase/6/docs/api/java/lang/String.html#substring(int,%20int)

[]´s

davidbuzatto

O segundo parâmetro não é a quantidade de caracteres e sim o ponto de parada do corte da string.

Corrigido adriano? :smiley:

[]´s

marcosharbs

sim o último caractere não é inclusivo, mas se ela deseja os 50 primeiros então ela deverá pegar do 0 até o 50 apenas, pois assim ele criará uma nova string indo da posição 0 até a 49 que totaliza os primeiros 50 caracteres, se for até 51 ela estará pegando do 0 até o 50, então estará pegando os 51 primeiros caracteres.

davidbuzatto

Putz… é verdade. Desculpem a mancada!

M

davidbuzatto:
marcobiscaro2112:

Não entendi o porque do 0 até 51, se ela precisa de 50 caracteres…

Eu expliquei no comentário logo na frente do primeiro substring.

Caso ainda tenha dúvidas, uma olhadinha de vez em quando na documentação pode ajudar.

Returns a new string that is a substring of this string. The substring begins at the specified beginIndex and extends to the character at index endIndex - 1. Thus the length of the substring is endIndex-beginIndex.

http://java.sun.com/javase/6/docs/api/java/lang/String.html#substring(int,%20int)

[]´s


Isso eu entendi… o problema é outro:

Suponhamos que ela precisasse de 2 caracteres. Deveríamos usar:

System.out.prinln(nome.substring(0, 2)); // imprime os caracteres nos índices 0 e 1
// são 2, portanto!

Se fossem 3:

System.out.prinln(nome.substring(0, 3)); // imprime os caracteres nos índices 0, 1 e 2
// são 3, portanto!

Logo, para 50 temos:

System.out.prinln(nome.substring(0, 50));

Entendeu?

davidbuzatto

Sim, entendi :smiley:

Já falei no post anterior ao seu :smiley:

[]´s

adriano_si

CORRIGIDO: Deve ir do 0 - 49

adriano_si

ERRATA: 0 - 50 mesmo…

Caracaaa tinha esquecido o quanto tratamento de Strings é delicado…

M

adriano_si:
ERRATA: 0 - 50 mesmo…

Caracaaa tinha esquecido o quanto tratamento de Strings é delicado…

auhuahauhauhauhauh… :smiley:

A coisa está complicada mesmo… o método substring deve passar como parâmetros os números 0 - 50, uma vez que retornará os caracteres nos índices 0 - 49, totalizando 50!

Certo? :shock:

peczenyj

Titulo editado: favor não abrir mais topicos com titulos sem sentido ou que pouco informem sobre o seu real problema.

Sobre substring:
“hamburger”.substring(4, 8 ) returns “urge”
“smiles”.substring(1, 5) returns “mile”

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#substring(int,%20int)

Criado 6 de janeiro de 2009
Ultima resposta 6 de jan. de 2009
Respostas 20
Participantes 10