[b]Ola.
Preciso transformar os caracteres de uma mensagem em maiúsculos e minúsculos intercaladamente,
com o detalhe de cada palavra iniciar com caracter maiúsculo.
Programei o seguinte código, no entanto ele não esta retornando a mensagem modificada, apenas:
?BUILD SUCCESSFUL (total time: 1 second)?
Ex: mensagem = alguma frase minha deve estar aqui
Retorno esperado=AlGuMa FrAsE MiNhA DeVe EsTaR AqUi
Estou usando o Netbeans. Testei o código nas versões 7.0 e 6.9 e obtive o mesmo resultado em ambas.
Será que é algum erro de lógica?[/b]
import java.lang.String.*;
import com.sun.xml.internal.ws.util.StringUtils;
public class IntercalarMaiusculoMinusculo {
public static void main(String[] args) {
String mensagem = ("uma frase aqui");
String resultado = Intercalar(mensagem);
System.out.println(resultado);
}
public static String Intercalar(String msg)
{
String saida = "";//declara e incializa a string de retorno
String[] palavras = msg.split(" ");//cada posição do array recebe uma palavra da mensagem (ordenadamente)
//split() separa a string utilizando como critério o delimitador retornando um array
for (int i = 0; i>= palavras.length; i++) // percorre as posições do array de palavras
{
palavras[i]=StringUtils.capitalize(palavras[i]); // capitaliza as palavras de cada posição// OBS: posso omitir essa linha!
String[] letras = palavras[i].split(""); // as letras de casa palavra são separadas aqui
for (int j = 0; j>=letras.length; j++) // percorre as posições do array de letras
{
// OBS: sempre a posição par será maiúsculo e a impar minusculo, uma vez que toda palavra inicializa com caracter maiúsculo
if(j%2==0){ // se posição par torna maiúsculo
letras[j]=StringUtils.capitalize(letras[j]);
}
if (j%2!=0){ // se posição ímpar torna minúsculo
letras[j]=(letras[j]).toString().toLowerCase();
}
saida += letras[j]; // concatena as letras de cada palavra na string de retorno
}
saida += " ";// acrescenta um espaco entre cada palavra
}
return (saida);
}
}
