Jump to content

Problemas com programa pa formatar strings em java


Little_star
 Share

Recommended Posts

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.