Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Não consigo acessar variáveis em funções diferentes

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Como eu acesso o String[] splitted - de modo a funcionar o que foi declarado na primeira função - na função mostrarPalavra?

1 resposta
solução!

Olá! Tudo bem? Uma das opções seria você passar a variável como parâmetro quando chamar a função mostrarPalavra, tipo assim:

public class Letras_Grandes {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        System.out.println("Digite uma palavra: ");
        String frase = scan.next();

        String[] splitted = frase.split("");
        // Chama a função mostrarPalavra, passando "splitted" como parâmetro 
        mostrarPalavra(splitted);
    }

    // Função recebe a palavra dividida como parâmetro 
    public static void mostrarPalavra(String[] splitted) {
        for (int i = 0; i < splitted.length; i++) {
            System.out.println(splitted[i]);
        }
    }
}

Outra opção seria transformar a variável que você usará em vários lugares em uma variável global ou atributo, desse jeito:

public class Letras_Grandes {

    // Variável acessível em toda a classe, serve como um atributo da classe
    static String[] splitted;

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        System.out.println("Digite uma palavra: ");
        String frase = scan.next();

        splitted = frase.split("");
        mostrarPalavra();
    }

    // Não é mais necessário passar por parâmetro
    public static void mostrarPalavra() {
        for (int i = 0; i < splitted.length; i++) {
            System.out.println(splitted[i]);
        }
    }
}

Existem essas duas opções, passar por parâmetros é mais eficaz quando não há tantas variáveis a serem compartilhadas e também permite um maior controle sobre o que cada função pode acessar. Enquanto isso usar variáveis de escopo maior (acessíveis em mais partes do código) pode ser melhor quando temos muitas funções ou muitos parâmetros para passar ao mesmo tempo, porém pode causar problemas de segurança por permitir acesso a variáveis em lugares de mais. Espero ter ajudado!