2014-02-20 3 views
0

У меня возникли проблемы с тем, что вы также можете разложить String на Java. Это базовый Java-класс, который я беру, поэтому он требует только основных команд, ничего необычного. Цель его в состоянии типаСжатие и декомпрессия строк аргументов в Java

C:\>java Compress -c aaaabbbbbcc 

в командной строке, и он будет печатать a4b5c2 (как это сжать строку аргумента).

Другая цель состоит в том, чтобы ввести

C:\>java Compress -d a5b7c4 

и он будет печатать aaaaabbbbbbbcccc (как это будет распаковывать аргумент String). Декомпрессия - это проблема, с которой я сталкиваюсь. Вот мой код, любая помощь, которую я получаю, очень ценится.

import java.util.*; 

public class Compress { 
    public static void main(String args[]) { 

     Scanner scan = new Scanner(System.in); 
     String originalString = scan.nextLine(); 
     int number = scan.nextInt(); 

     if (args[0].equals("-c")) { 
      System.out.println("compress"); 
      compress(originalString); 
     } 

     else if (args[0].equals("-d")) { 
      System.out.println("decompress"); 
      decompress(originalString); 
     } else { 
      System.out.println("Compress program by Kelsey Faram"); 
      System.out.println("usage: java Compress [-c,-d] <inputFile> outputFile"); 
     } 
    } 

    public static void compress(String originalString) { 
     int count = 0; 
     char comp = originalString.charAt(0); 
     for (int i = 0; i < originalString.length(); i++) { 
      originalString.charAt(i); 

      if (comp == originalString.charAt(i)) 
       count++; 
      else { 
       System.out.print(comp + "" + count); 
       comp = originalString.charAt(i); 
       count = 1; 
      } 
     } 
     System.out.println(comp + "" + count); 
    } 

    public static void decompress(String originalString) { 

    } 
} 
+0

Походит домашнее задание. Подсказка: используйте Integer.parseInt(). – Zemzela

+0

'Декомпрессия - это проблема, с которой я сталкиваюсь. 'Мы можем узнать больше об этой проблеме? В какой части кода вы застряли? Что и как вы пытаетесь достичь и как он отличается от ожидаемых результатов? – Pshemo

+0

нет, мы не будем делать домашнее задание – radai

ответ

0
Quick Code for you.. 


public static void decompress(String originalString) 
{ 
     StringBuffer finalString = new StringBuffer();; 
     char previouschar = originalString.charAt(0); 
     for(int i=1; i < originalString.length(); i+=2){ 
       for(int j = 0 ; j< Integer.parseInt(""+originalString.charAt(i));j++) { 
        finalString.append(previouschar); 
       }    
       if(i+1 < originalString.length()) 
       { 
        previouschar=originalString.charAt(i+1); 
       } 
     } 
     System.out.println(finalString.toString()); 
} 
Смежные вопросы