Criar um vetor do tipo char, obtendo do charAt()?

Ola galera.
Goataria de criar um vetor do tipo char.
eu tenho uma palavra, ai eu desmembro ela para colocar em um vetor, depois comparar este vetro com as palavras digitadas pelos usuarios.
Na realidade, estou tentando criar um jogo da forca.
Quero desenvolver sozinho, sem exemplos da Internet.
Já tenho a primeira parte do codigo agora parei nesta parte.

public class Testes { String palavra=("Marcelo"); char vetpalavra[]; public void palpite(){ int tam = palavra.length(); for (int i=0;i<tam;i++){ vetpalavra[i]=palavra.charAt(i); } } public static void main(String[] args){ Testes Palpite = new Testes(); Palpite.palpite(); } }

Segue o codigo:

char [] meuArray = new char[12];
ou ainda
char [] meuArray = new char[]{'a', 'x', '1'};

abvrs

1 curtida
    char vetpalavra[];  
    // Primeira forma: http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#toCharArray%28%29
    public void palpite(){  
        vetpalavra = palavra.toCharArray();
    } 

então, como criar o vetor eu sei, o que eu gostaria é de inserir nos indices do vetor o valor do charAt();
exemplo: a palavra é Marcelo.

com esta linha - vetpalavra[i]=palavra.charAt(i);

O vetor ficaria deste jeito vetpalavra[]={“M”,“a”,“r”,“c”,“e”,“l”,“o”};

Será que fui claro?

Foi,e é por isso que sugeri você usar toCharArray, que faz duas coisas:
a) Cria um array de char do tamanho igual ao da String, e
b) Copia todos os caracteres da string nas posições correspondentes, como se fosse charAt.

Muito Obrigado deu certo!
Só mais uma dúvida?

Como eu converto uma String para char ?

[code]Scanner lt = new Scanner(System.in);
String letraUs = lt.nextLine();
char letra1=(char)letraUs;
if(letra1==vetpalavra[i]){


    }[/code]

Você não converte (imagina se a string tem mais de 1 caractere). Se você sabe que ela tem só 1, simplesmente use o charAt:

char c = minhaString.charAt(0);

Marcelo_Jq.,

conforme o wagnerfrancisco mencionou acima, não seria possível. Em contrapartida, pensei em alguma solução que talvez satisfaça o que precisa: criei um método toChar que retorna um conjunto de char a partir de uma String. Ou seja, não temos problema no tamanho da String, pois o retorno é um conjunto de char e o tamanho deste conjunto de char é exatamente o tamanho do número de caracteres da String. Bem dinâmico.

public char[] toChar(String s) {
	char[] newChar = new char[s.length()];
	
	for (int i = 0; i < s.length(); i++) {
		newChar[i] = s.charAt(i);
	}		
	
	return newChar;		
}

[quote=lucasn000]Marcelo_Jq.,

conforme o wagnerfrancisco mencionou acima, não seria possível. Em contrapartida, pensei em alguma solução que talvez satisfaça o que precisa: criei um método toChar que retorna um conjunto de char a partir de uma String. Ou seja, não temos problema no tamanho da String, pois o retorno é um conjunto de char e o tamanho deste conjunto de char é exatamente o tamanho do número de caracteres da String. Bem dinâmico.

[code]
public char[] toChar(String s) {
char[] newChar = new char[s.length()];

for (int i = 0; i < s.length(); i++) {
	newChar[i] = s.charAt(i);
}		

return newChar;		

}
[/code][/quote]

Este método já existe na API do Java, é o toCharArray da String. :smiley:

char[] chars = "abc".toCharArray();

Sim, Wagner. Mas a ideia foi esmiuçar o método para que o amigo entendesse a lógica por trás, e não simplesmente uma caixa preta. Sem falar que estamos em uma área para iniciantes onde é bacana discutir o “como faz”.

De qualquer maneira foi bem importante a tua colocação. Exploração de bibliotecas a nossa disposição é extremamente importante neste paradigma orientado a objetos

Boa noite pessoal!
Gostaria de tirar uma duvida sobre vetor tipo char do seguinte enunciado:

Fazer um programa em Java faça uma pesquisa de opinião com 10 pessoas e armazene as respostas em um vetor de char perguntando: ?você é a favor da lei seca ?S/N ?. Ao final exiba o vetor com todas as respostas. O total de sim e o total de não.

Sou iniciante em Java e gostaria que algum de vcs me dessem uma luz. Se possível criar o código com comentários.

Agradeço desde já!
Paz!


import java.util.Scanner;
import javax.swing.JOptionPane;

public class Pesquisa {
   
    public void pergunta(){
        char resp [] = new char[10];
        for(int i= 0;i<10;i++){
           resp[i] = resposta();//preenche cada posição do vetor com o retorno do metodo
        }
        resultado(resp);//mostra para o usuario o resultado passando como parametro o vetor preenchido
    }
    public void resultado(char[] pesquisa){
        int sim = 0,nao = 0;//contadores para exibir os resultados
        String result = "";//para exibir todos as respostas
        for(char a : pesquisa){ //foreach pode ser utilizado assim 
            //tambem for(int i = 0;i<pesquisa.lenght();i++){}
            result+=a+" - ";//jogada com a String que será exibida para separar os char's de cada posição
            if(a =='n'|| a=='N'){//caso o char da posição x contenha n ou N
                nao++;//incrementa + 1 na variavel. Alternativa nao = nao + 1;
            }  
            else if(a == 's' || a == 'S'){
                sim++; //incrementa + 1 na variavel. Alternativa sim = sim + 1;
            }            
        }
        //exibe o resultado em uma caixa de dialogo
        JOptionPane.showMessageDialog(null,result.substring(0, result.length()-2)+"\n Tota de não: "+nao+
                "\n Total de sim: "+sim+
                "\n Total de invalidos: "+(pesquisa.length-(nao+sim)));//tamanho do vetor - (total de nao + total de sim)
        //pode ser utilizado o System.out.println(sua mensagem aqui entre "" ou não); 
        
    }
    public char resposta(){
        String op;
        //armazena numa string o resultado do input do usuario
        op = JOptionPane.showInputDialog("Você é a favor da Lei Seca ?");//caixa de input
        /*pode ser utilizado o metodo scanner com a mesma finalidade
           op = new Scanner(System.in).nextLine();
         */
        return op.charAt(0);//retorna o primeiro char digitado no input
    }
    
}

Ta ai marquimn ve se isso resolve a sua questão.