Como eu acesso o String[] splitted - de modo a funcionar o que foi declarado na primeira função - na função mostrarPalavra?
Como eu acesso o String[] splitted - de modo a funcionar o que foi declarado na primeira função - na função mostrarPalavra?
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!