Сжатие и декомпрессия в Java
У меня возникли проблемы с тем, чтобы слишком сильно распаковать строку в java, это базовый класс java, который я беру, поэтому он требует только базовых команд, ничего слишком причудливого. Цель его в том, чтобы уметь печатать
C:\>java Compress -c aaaabbbbbcc
в командной строке и он будет печатать
a4b5c2
(как будто это сжатие строки аргумента). Другая цель состоит в том, чтобы напечатать
C:\>java Compress -d a5b7c4
и он будет печатать
aaaaabbbbbbbcccc
(например, он будет распаковывать строку аргумента). Декомпрессия-это проблема, с которой я столкнулся. Вот мой код, любая помощь, которую я получаю, очень ценится.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) { } }
TorstenH.
сделал его читабельным.