How to create a vector whose indices are characters of an informed string?

5

I wanted to create a vector in java in which each index of the vector was a character of a string that I /

public static void main(String[] args) { 

    String[] words = {"java"};

    System.out.println("\n"+words[3]);  //para dar um print na letra"a"

}
    
asked by anonymous 14.11.2017 / 01:17

2 answers

5

You do not have to transform to array, just call the method charAt() passing the position of the letter, because all String is a CharSequence , that is, a sequence of characters that can be captured using the above method.

String word = "java";

System.out.println("\n"+ word.charAt(3));  

See working at ideone .

  

Note: It is always good to check if the last index is smaller than the string size by checking seuIndice < palavra.length because if the index passed to this method is greater than the string size, a IndexOutOfBoundsException .

Remembering that the index of a word starts from 0 to the size of String -1.

But if even with all this language-provided ease you want to insist on creating an array, you can also convert a String to an array of char , with the toCharArray() method:

char[] words = "java".toCharArray();
System.out.println("\n"+words[3]);

See also working on IDEONE .

    
14.11.2017 / 01:25
3

Try this:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Teste {

    public static void main(String[] args) {

        /**
         * Vamos utilizar para ler as informações do console...
         */
        BufferedReader buffReader = null;
        try {
            /**
             * Criamos uma instancia do fluxo de entrada padrão. Esse fluxo já está aberto e
             * pronto para fornecer dados de entrada. Este fluxo corresponde à entrada do
             * teclado (normalmente) do usuário.
             */
            buffReader = new BufferedReader(new InputStreamReader(System.in));

            while (true) { // irá permanecer nesta iteração, até que o usuário digite sair!

                // pedimos ao usuário uma palavra
                System.out.print("\nDigite\n: ");

                /**
                 * Aguarda o usuário digitar, e quando aperta ENTER, a String input recebe as
                 * informações. Sem incluir nenhum caractere de terminação de linha, ou nulo se
                 * o final do fluxo foi atingido.
                 */
                final String input = buffReader.readLine();

                // compara as String´s ignorando Maisculas e minusculas!
                if ("sair".equalsIgnoreCase(input)) { 
                    System.out.println("Você saiu da aplicação!");
                    // Sai da aplicação
                    System.exit(0); 
                } else {
                    System.out.printf("Você digitou %d letras\n", input.length());
                    // Vamos iterar os carateres!!!
                    final char[] caracteres = input.toCharArray(); 
                    for(int i =0; i < caracteres.length; i++) {
                        System.out.printf("Posição: %d, caracter: %c\n", i, caracteres[i]);
                    }

                }

            }
        } catch (final IOException e) {
            e.printStackTrace();
        } finally {
            if (buffReader != null) {
                try {
                    buffReader.close();
                } catch (final IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}
    
14.11.2017 / 01:53