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