Alguém pode me da uma dica de como eu faço para fazer um vetor de caracter receber as strings??? ai está o execicio não sei o que está dandu errado!
/*Crie um aplicativo que leia um vetor de 5 strings de caracteres. Calcular
e imprimir este vetor em ordem crescente. Alterar o proprio vetor.
*/
import javax.swing.*;
public class Prog22
{
public static void main(String args[])
{
JTextArea texto = new JTextArea(10,25);
String saida;
char vet[]= new char [5];
for(int i=0;i<5;i++)
{
vet[i]=JOptionPane.showInputDialog("Dígite o "+(i+1)+"° caracter");
}
}
}
por favor se alguém sabe o que se trata me ajude!
Quebrei minha cabeça cheguei nessa solução mais com eu faço para ordenar o vetor de caracter em ordem crescente?? por favor se alguém souber implemente meu código ou me explique como faz!
/*Crie um aplicativo que leia um vetor de 5 strings de caracteres. Calcular
e imprimir este vetor em ordem crescente. Alterar o proprio vetor.
*/
import javax.swing.*;
public class Prog22
{
public static void main(String args[])
{
JTextArea texto = new JTextArea(10,25);
String saida,nome,menor="0";
int i,t,j,cont=0;
char vet[];
saida="PROGRAMA 22 \n";
for(i=0;i<5;i++)
{
nome=JOptionPane.showInputDialog("Dígite a "+(i+1)+"ª String de Caracter:");
t=nome.length( );
vet=new char[5];
nome.getChars(0,t,vet,cont++);
saida+=vet[i];
}
for(i=0;i<5;i++)
{
}
texto.setText(saida);
JOptionPane.showMessageDialog(null,texto);
}
}
Cara eu acho que deve existe algum modo mais fácil.
mas vc pode fazer assim oh:
(int) vetor[i].toUpperCase() < (int) vetor[i+1].toUpperCase()
vetorOrdenado[j] = vetor[i];
o que eu fiz foi, pegar o codigo ASCII da tecla digitada e verificar se e menor que o ASCII da proxima letra…
Vc pode usar o metodo Bolha que funciona…
=]
mais cara o problema e que tem k alterar o próprio vetor, creio que o metodo bolha da mais tem um problema porque é de caracteres! como eu faço pra armazenar uma caracter em uma variavel?? não da certo usei esse ai!
for(j=0;j<9;j++)
{
for(i=0;i<lusp;i++)
{
if(v[i]<v[i+1])
{
aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
}
}
lusp--;
}
mais não deu certo se vc tem moral de colocar o metodo bolha para ordenar o vetor de caracteres?
A Classe TreeSet organiza em ordem alfabética. 
Tem um método pronto aqui. olha soh:
public static Character[] ordemAlfabetica(Collection<Character> colecao) {
if (colecao != null) {
TreeSet<Character> tre = new TreeSet<Character>();
for (Character reg: colecao) {
if (reg != null) {
tre.add(reg);
}
}
return tre.toArray(new Character[tre.size()]);
}
return null;
}
O Problema, é que seu vetor eh: char, entao vc vai precisar alterá-lo para Character.
Abraços.
mais como k eu faço para alterar de char para caracter para min era mesma coisa
É simplesmente na hora que vc declara o vetor:
char vet[];
mudar para Character vet[].
A diferença, é que char é primitivo, e Character é uma classe onde vc cria objetos.
Nela tem um monte de métodos.
A mesma coisa pra: Long != long… Integer != int…
etc
Abraço
fiz igual vc falow cara mais aki não deu certo, voce me desculpe minha ignorância pois sou iniciante e tenho varias díficuldades! gostaria de agrader tb sua boa vontade de ter me passado aquela class mais não compreendi porque eu não sei mexer com class ainda!so sei fazer programa no método principal! mais será k tem jeito de fazer alguma gambiarra simples que resolva isso não ja quebrei a cabeça olhei em livros e nada… declarando o vetor com Character olha como ficou…
/*Crie um aplicativo que leia um vetor de 5 strings de caracteres. Calcular
e imprimir este vetor em ordem crescente. Alterar o proprio vetor.
*/
import javax.swing.*;
public class Prog22b
{
public static void main(String args[])
{
JTextArea texto = new JTextArea(10,25);
String saida,nome,menor="0";
int i,t,j,cont=0;
Character vet[];
saida="PROGRAMA 22 \n";
for(i=0;i<5;i++)
{
nome=JOptionPane.showInputDialog("Dígite a "+(i+1)+"ª String de Caracter:");
t=nome.length( );
vet=new Character[5];
nome.getChars(0,t,vet,cont++);
saida+=vet[i];
}
{
texto.setText(saida);
JOptionPane.showMessageDialog(null,texto);
}
}
}
Opa, acho que assim ficou fácil de entender…
num implementei no seu codigo pra vc fazer aew pra aprender fraga…
se num consegui eu implemento pra vc…
mas kebra a cabeça aew…
testei aki e funcionou… =]
Character vet[] ;
TreeSet<Character> tre = new TreeSet<Character>(); // NOvo objeto de Tre
// O For eh pra percorrer todos os registros do vetor
for (Character registro : vet) {
// se o registro atual for diferente de null
if (registro != null) {
// objeto tre adiciona o caractere na ordem
tre.add(registro);
}
}
// remonta o vetor ordenado
tre.toArray(new Character[tre.size()]);
// imprime o vetor
System.out.println(tre);
Abraços…
VO FICAR O DIA INTEIRO TENTANDU SE EU NÃO CONSEGUIR AI VC DA UMA OLHADINHA AI PRA MIN, MAIS TE QUALQUER FORMA MUITO OBRIGADO!
NA BOA TENTEI…TENTEI…MAIS DEU NÃO O JEITO E O PROFESSOR DE QUALQUER FORMA OBRIGADO