Como separar essas palavras em java sendo lidas por um arquivo txt

Oi pessoal, eu estou fazendo um programa em java e nesse meu programa é lido um arquivo txt como entrada e eu devo separar as palavras por vírgula e linhas por exemplo:

“Outro Professor”, “OP”

“Estruturas de Dados e Programação Orientada a Objetos - T01”, “EDOO-T01”

neste caso Outro professor seria salvo em um array como valor, OP como chave, e Estrutura de dados deve ser salvo em outro array, e EDOO como uma chave desse outro array, como eu consigo fazer essa distinção em java?

Sim você consegue.
Veja que tem muitas formas de ler o arquivo txt

Para separar as palavras, tem varias formas
1.metodo split da classe String
2.StringTokenizer
3.Obter atraves de um laço usando str.charAt()
4… enfim …

no meu caso eu tava lendo esse arquivo assim:
for (int i = 0; !StdIn.isEmpty(); i++) {
String nome = StdIn.readString();
}
nesse caso ele vai lendo palavra por palavra, o que me ajuda na hora de separar elas, a maior dúvida que tenho é como eu faço pra identificar esse espaço que seria quando você pula linha, não é um espaço do tipo backspace seria como apertar enter no caso.

Nesse seu caso, não pode ser como esta sendo feito. Porque se ele traz de palavra em palavra
os espaços são ignorados.
O que você pode fazer é ler caracter por caracter e colocar um laço para obte-los até encontrar o espaço ou final de linha.
Normalmente dentro de um txt tem o caracter 13 10 - Carriage Return / Line Feed, que siignifica nova linha ou final de linha.
Tem que filtrar.

então a melhor escolha seria trocar o readString, identificar as aspas pra pegar o que ta dentro, separar pela vírgula, e identificar essa nova linha? só pra confirmar mesmo kkkkkkkk

Como mencionei, tem varias opções.
Isso pode ser feito.

Assim deve resolver:

String regex = "\"([^\"]*)\""; // regex para extrair texto entre aspas
Pattern pattern = Pattern.compile(regex);

String linha = null;
while ((linha = StdIn.readLine()) != null) {
    Matcher matcher = pattern.matcher(linha);
    while (matcher.find()) {
        String textoEntreAspas = matcher.group(0);
        System.out.println(textoEntreAspas);
    }
}

Vou tentar, muito obrigado

1 curtida

eu consegui fazer tudo compila sem problemas, eu olho caractere por caractere mas por algum motivo não ta lendo a entrada direito porque não tem valores sendo salvos no vetores, não sei se pode postar links aqui mas da pra dar uma olhada? eu fiz ele através do eclipse

Se possivel, coloca somente a parte do codigo que está dando o erro aqui pra gente ver.