Little_star Posted November 21, 2009 at 08:02 PM Report Share #297121 Posted November 21, 2009 at 08:02 PM ola malta, eu tenho um programa que tem de formatar uma string inserida pelo utilizador, tenho de por as 1º letra de cada palavra em maiúscula e retirar os espaços a mais. O meu problema é que o código que eu fiz ta a retirar as 2 primeiras letras da palavra ... será que me podiam ajudar?? public class strings2{ public static void main(String[] args) { Scanner kiby= new Scanner(System.in); System.out.println("Escreva uma frase"); String s=kiby.nextLine(); strings2.format(s); System.out.println("A Frase formatada fica assim: \n"+strings2.format(s)); } public static String format(String s) { String s2=s.toLowerCase(); char letraM=0; String line=""; String line2=""; String j=" "; for(int i=1;i<s2.length();++i) { if(s2.charAt(i-1)==' '&& s2.charAt(i)!=' ')//poem todas as letras a seguir aos espaços em maiusculas { letraM=s2.charAt(i); line = line + (char) (letraM - ('a' - 'A')); System.out.println(line); } else { letraM=s2.charAt(i); line+=letraM; } } for(int i=1;i<line.length();i++)//retira o espaços a mais da frase { while(line.charAt(i)==' ')//passa as letras para dentro da nova string { line2+=line.charAt(i); if (i==line.length()-1)//se o i chegar a zero para break; i++; } if(line.charAt(i-1)!=' ') i++; else line2+=j; } return line2; } } obrigado Link to comment Share on other sites More sharing options...
Baderous Posted November 21, 2009 at 09:40 PM Report Share #297134 Posted November 21, 2009 at 09:40 PM O que são "espaços a mais"? São os espaços no início e no fim da string? Ou também contam os espaços a mais no meio da string? Se for o 2º caso podes usar uma combinação das funções trim() e replaceAll(). A primeira elimina todos os espaços no início e no fim da string. A 2ª, quando usada com uma expressão regular que faça match com 2 ou mais espaços seguidos (ou com tabs ou newlines), pode substituí-los por apenas 1 espaço. String str = " espacos e cenas "; str = str.trim().replaceAll("[\t\n ]{2,}"," "); Isto vai originar a string: "espacos e cenas". Link to comment Share on other sites More sharing options...
Little_star Posted November 21, 2009 at 10:44 PM Author Report Share #297141 Posted November 21, 2009 at 10:44 PM Obrigado Baderous, era mesmo isso. Ficou a funcionar lindamente e fiquei com o código bem mais reduzido. 🙂 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now