Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

218
Visualizações
Sin respuesta: el programa de descompresión de archivos no funciona

Entonces, en mi archivo tengo dos listas, una para las palabras únicas que se usarán para formar la oración completa y la otra es la oración comprimida que se comprimió en las posiciones de las palabras en la lista de palabras únicas. El archivo se ve así:

 Is, this, a, simple, sentence, 1, 2, 3, 4, 5, 3, 4, 5, 4,

Quiero que mi programa use las palabras únicas y vuelva a crear la oración original que era: ¿Es esta una oración simple? Una oración simple es simple. Sin embargo, mi código no funciona de la manera que quiero que funcione, por lo que no descomprime la oración. Aquí está mi código:

 public static void main(String[] args) { String compressed = ""; String compressed1 = ""; int Index1; String orig = ""; int num1=0; int num2=0; BufferedReader br; try{ br = new BufferedReader (new FileReader("CompletedWork.txt")); try { String Uni = br.readLine(); System.out.println(Uni); //outputs the content of the first line in the file String Uni1 = Uni.replaceAll(",", ""); //gets rid of the commas in the unique words String Uni2 = Uni1.toLowerCase(); //changes the case to lowercase String[] ArrUni = Uni2.split(" "); //turns the string into a string array System.out.println(ArrUni[0]); // checks that the array splits into words compressed = br.readLine(); //read next line System.out.println(compressed); //outputs the compressed compressed1 = compressed.replaceAll(",", ""); //removes the punctuation from the compressed sentence. System.out.println(compressed1); String[] ArrComp = compressed1.split(" "); System.out.println(ArrComp[2]); for(num1=0; num1 < ArrComp.length; num1++) { //starts the loop for(num2=0; num2 < ArrComp.length; num2++) { if (ArrComp[num1].equals(num2)) { orig = orig.concat(ArrUni[num2]); }else{ } }} } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { System.out.println(e); //outputs an error message if the file is not present e.printStackTrace(); } System.out.println(orig); }

}

Tengo todas las importaciones solo para aclarar. La cadena Orig debe generarse pero no es así y debe contener la oración original. Aquí está la salida a la consola:

 run: Is, this, a, simple, sentence, is 1, 2, 3, 4, 5, 3, 4, 5, 4, 1 2 3 4 5 3 4 5 4 3 BUILD SUCCESSFUL (total time: 0 seconds)

Como puede ver, hay un espacio después del 3 que es donde se emite Orig pero no se emite nada. Espero que alguien pueda ayudarme a resolver esto. Si necesita más información para resolver, solo pregunte. FYI soy bastante nuevo en Java.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

El problema es su declaración if. Está comparando una cadena (ArrComp[num1]) con un número (num2) que siempre devolverá falso.

Debería ser:

 if (Integer.parseInt(ArrComp[num1]) == num2) { orig = orig.concat(ArrUni[num2 - 1] + " "); }

También tenga en cuenta el - 1 al obtener la palabra para evitar una ArrayIndexOutOfBoundsException y el espacio entre las palabras.

Y si tu quieres:

 Is this a simple sentence a simple sentence is simple

Entonces tu oración comprimida tiene que ser:

 1, 2, 3, 4, 5, 3, 4, 5, 1, 4,

También puede hacer que su otro código sea eficiente o al menos más fácil de leer usando una expresión regular para dividir las cadenas en una coma y deshacerse del espacio extra en una línea, así:

 yourString.split("\\s*,\\s*");
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda