Pegar apenas o necessario

Ola pessoal estou precisando de ajuda
estou desenvolvendo um programa e preciso de uma sugestão
exemplo: eu tenho uma variável do tipo String chamada nome, e nesta variável tem o seguintes texto (“EU” ESTOU “ESTUDANDO” JAVA)
e nessa frase eu queria pegar apenas pegar as palavras que estão entre "aspas"
como a palavra: EU e JAVA
obrigado!

Fiz na correria mas deve funcionar.

obs - acho que você quis dizer pra imprimir “EU” e “ESTUDANDO”, e não “EU” e “JAVA”

    String frase = "\"EU\" ESTOU \"ESTUDANDO\" JAVA";
    String palavras = "";
    boolean aspaAberta = false;

    for (int i = 0; i < frase.length(); i++) {
        if (frase.charAt(i) == '"' && aspaAberta == false) {
            aspaAberta = true;
        } else if (frase.charAt(i) == '"' && aspaAberta == true) {
            aspaAberta = false;
            palavras += " ";
        }
        if (frase.charAt(i) != '"' && aspaAberta == true) {
            palavras += frase.charAt(i);
        }
    }
    System.out.println(palavras);

uma forma é criando uma maquina de estados

se vc souber varrer uma string do começo ao fim ( charAt ) vc pode fazer

boolean abriu = false;

for(int i = 0; i< string.length(); i++ ){
   char c = string.charAt( i );
  if ( c == '"' && abriu ) {
       abriu = false; // achou o fim da string
       /* se vc tem uma lista de strings, aqui é um momento pra adicionar o que vc ja pegou */
       next;
  }  
  
  if ( abriu ) { /* aqui vc tem uma letra dentro de aspas, vai pegando-as */ } 
  
  if ( c == '"' && ! abriu ) {
       abriu = true; // achou o começo da string
   }
}

ai vc so tem q bolar uma maneira de combinar os chars para gerar as strings. eu usaria StringBuffer para isso