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
só coloca uma frase válida ali, ou vai dar excessão…
StringfraseInteira="frase de 60 catacteres......................";intposIni=0;intposFim=50;// imprime apenas os 50 primeirosStringfraseTruncada=fraseInteira.subString(posIni,posFim);System.out.println(fraseTruncada);
definitivamente usar substring é a melhor opção =)
davidbuzatto
marcio, usar o substring não é mais simples? :shock:
Stringpalavra="abcdefghijlmnopqrstuvxzabcdefghijlmnopqrstuvxzabcdefghijlmnopqrstuvxz";System.out.println(palavra.substring(0,51); // pega do zero ao 50. o último parâmetro não é inclusivo.//oumelhor...
if(palavra.length>50)System.out.println(palavra.substring(0,51));elseSystem.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
marcobiscaro2112
davidbuzatto:
marcio, usar o substring não é mais simples? :shock:
Stringpalavra="abcdefghijlmnopqrstuvxzabcdefghijlmnopqrstuvxzabcdefghijlmnopqrstuvxz";System.out.println(palavra.substring(0,51); // pega do zero ao 50. o último parâmetro não é inclusivo.//oumelhor...
if(palavra.length>50)System.out.println(palavra.substring(0,51));elseSystem.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.
O segundo parâmetro não é a quantidade de caracteres e sim o ponto de parada do corte da string.
Corrigido adriano?
[]´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
marcobiscaro2112
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.
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
Já falei no post anterior ao seu
[]´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
marcobiscaro2112
adriano_si:
ERRATA: 0 - 50 mesmo…
Caracaaa tinha esquecido o quanto tratamento de Strings é delicado…
auhuahauhauhauhauh…
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.