Captura de dados antes e apos o | (pipe)

Boa noite, gostaria da ajuda de vocês para me ajuda, estou tendo dificuldade em realizar um captura de dados que vem de um arquivo txt que tem esse paramento “c|1|1|200” porem preciso capturar paramento e colocar nas suas devida variável o “c” = string, “1” e “1” = int e “200” = double.

leitura (recebe todo o conteúdo do txt)
String [] palavra;
palavra = leitura.split("|");

iniciei fazendo assim porem ele está vindo letra por letra.

Lembrando que metodo split usa regex \o

public class principal {
public static void main(String[] args) {
	Arrays.asList("c|1|1|200".split("\\|")).forEach(e -> {
		System.out.println(e);
	});
}

}

Bom dia amigo, obg, porem como preciso fazer alguns calculo de alguns paramentos conseguir fazer por scanner, porem estou tento um problema, aparece esse erro no final de programa:

Exception in thread “main” java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1371)
at repasse.NewClass.main(NewClass.java:46)
C:\Users\hyago\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
FALHA NA CONSTRUÇÃO (tempo total: 5 segundos)

O que pode ser?

o code fonte está no link abaixo, caso queira da uma olhada.

https://pastebin.com/D9LaSh8m

Dica: Ao invés de escrever seus if assim:

if (condicao1) {
    // faz algo
} else {
    if (condicao2) {
        // faz algo
    } else {
        if (condicao3) {
            // faz algo
        } else {
            if (condicaoN) {
                // faz algo
            }
        }
    }
}

Escreva assim, que é mais legível e fácil de manter:

if (condicao1) {
    // faz algo
} else if (condicao2) {
    // faz algo
} else if (condicao3) {
    // faz algo
} else if (condicaoN) {
    // faz algo
}

Outra coisa, evite implementar tudo dentro de um único método.
Quebre seu código em partes pequenas.

Exemplo:

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Exemplo {

    private class Repasse {

        int prazo;
        int qtdParcelas;
        String tipo;
        float valor;

        Repasse(String linha) {
            String[] campos = linha.split("\\|");
            tipo = campos[0];
            prazo = Integer.parseInt(campos[1]);
            qtdParcelas = Integer.parseInt(campos[2]);
            valor = Float.parseFloat(campos[3]);
        }

        float calcularResultado() {
            switch (tipo) {
                case "c":
                    return calculaTipoC(this);
                case "d":
                    return calculaTipoD(this);
                default:
                    return 0;
            }
        }
    }

    public static void main(String[] args) throws Exception {
        Exemplo programa = new Exemplo();
        programa.executar();
    }

    private final Scanner input = new Scanner(System.in);

    public void executar() throws IOException {
        int opcao = 0;
        do {
            System.out.println("Digite o caminho do arquivo a ser lido.");
            String arquivoEntrada = input.nextLine();
            List<Repasse> repasses = calcularRepasses(arquivoEntrada);
            System.out.println(repasses);
            String arquivoSaida = arquivoEntrada + "Repasse.txt";
            System.out.println(arquivoSaida);
            salvarRepasses(repasses, arquivoSaida);
            System.out.println("Digite 0 para fechar o programa e 1 para continuar");
            opcao = Integer.parseInt(input.nextLine());
        } while (opcao != 0);
    }

    private List<Repasse> calcularRepasses(String caminho) throws IOException {
        Path arquivo = Paths.get(caminho);
        List<Repasse> repasses = new ArrayList<>();
        List<String> linhas = Files.readAllLines(arquivo);
        for (String linha : linhas) {
            repasses.add(new Repasse(linha));
        }
        return repasses;
    }

    private float calculaTipoC(Repasse repasse) {
        float resultado = 0;
        float resul = 0;
        if (repasse.prazo == 1 && repasse.qtdParcelas == 1) {
            resul = (float) ((repasse.valor * 4.99) / 100);
            resultado = repasse.valor - resul;
            System.out.println(resultado + "\n 1");
        } else if (repasse.prazo == 1 && repasse.qtdParcelas >= 2) {
            resul = (float) ((repasse.valor * 5.59) / 100);
            resultado = repasse.valor - resul;
            System.out.println(resultado + "\n 2");
        } else if (repasse.prazo == 14 && repasse.qtdParcelas == 1) {
            resul = (float) ((repasse.valor * 3.99) / 100);
            resultado = repasse.valor - resul;
            System.out.println(resultado + "\n 3");
        } else if (repasse.prazo == 14 && repasse.qtdParcelas >= 2) {
            resul = (float) ((repasse.valor * 4.59) / 100);
            resultado = repasse.valor - resul;
            System.out.println(resultado + "\n 4");
        } else if (repasse.prazo == 30 && repasse.qtdParcelas == 1) {
            resul = (float) ((repasse.valor * 3.19) / 100);
            resultado = repasse.valor - resul;
            System.out.println(resultado + "\n5");
        } else if (repasse.prazo == 30 && repasse.qtdParcelas >= 2) {
            resul = (float) ((repasse.valor * 3.79) / 100);
            resultado = repasse.valor - resul;
            System.out.println(resultado + "\n 6");
        }
        return resultado;
    }

    private float calculaTipoD(Repasse repasse) {
        float resul = (float) ((repasse.valor * 2.39) / 100);
        float resultado = repasse.valor - resul;
        System.out.println(resultado + "\n 7");
        return resultado;
    }

    private void salvarRepasses(List<Repasse> repasses, String caminho) throws IOException {
        Path arquivo = Paths.get(caminho);
        List<String> linhas = new ArrayList<>();
        for (Repasse repasse : repasses) {
            linhas.add("Repasse:" + repasse.calcularResultado());
        }
        Files.write(arquivo, linhas);
    }
}

amigo assim, vc ajudou pra crl. obg mesmo

Porem esse quebrar eu não entendo muito, me da um bug, as vezes, mas obg pela ajuda.