COM pression和DECOM $ P $用Java参数字符串的pssion [英] Compression and Decompression of Argument Strings in Java

查看:266
本文介绍了COM pression和DECOM $ P $用Java参数字符串的pssion的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有想出办法太DECOM preSS Java中的字符串的麻烦。这是一个基本的Java类,我正在所以只需要基本的命令,没有什么太花哨。它的目标是能够键入

  C:\\>的Java的COM preSS -c aaaabbbbbcc

在命令提示符,然后将打印 a4b5c2 (如它为com preSS参数字符串)。

另一个目的是键入

  C:\\>的Java的COM preSS -d a5b7c4

和将打印 aaaaabbbbbbbcccc (像它会DECOM preSS参数字符串)。在DECOM pression是我遇到的问题。这里是我的code,任何帮助,我得到的是多少AP preciated。

 进口的java.util。*;公共类的COM $ P $ {PSS
    公共静态无效的主要(字符串ARGS []){        扫描程序扫描=新的扫描仪(System.in);
        串originalString = scan.nextLine();
        INT数= scan.nextInt();        如果(参数[0] .equals( - C)){
            的System.out.println(COM preSS);
            COM preSS(originalString);
        }        否则,如果(参数[0] .equals( - D)){
            的System.out.println(DECOM preSS);
            DECOM preSS(originalString);
        }其他{
            的System.out.println(的COM preSS由凯尔西等待区域方案);
            的System.out.println(用法:JAVA的COM preSS [-c,-d] LT; INPUTFILE> OUTPUTFILE);
        }
    }    公共静态无效COM preSS(字符串originalString){
        诠释计数= 0;
        焦补偿= originalString.charAt(0);
        的for(int i = 0; I< originalString.length();我++){
            originalString.charAt(ⅰ);            如果(补偿== originalString.charAt(I))
                算上++;
            其他{
                System.out.print(补偿++计数);
                排版= originalString.charAt(ⅰ);
                数= 1;
            }
        }
        的System.out.println(补偿++计数);
    }    公共静态无效DECOM preSS(字符串originalString){    }
}


解决方案

 快速code为你..
公共静态无效DECOM preSS(字符串originalString)
{
        StringBuffer的finalString =新的StringBuffer();;
        焦炭previouschar = originalString.charAt(0);
        的for(int i = 1; I< originalString.length(); I + = 2){
                为(中间体J = 0; J&下;的Integer.parseInt(+ originalString.charAt(ⅰ)); J ++){
                    finalString.append(previouschar);
                }
                如果第(i + 1&下; originalString.length())
                {
                    previouschar = originalString.charAt第(i + 1);
                }
        }
        的System.out.println(finalString.toString());
}

I'm having trouble coming up with a way too decompress a String in Java. This is a basic Java class I'm taking so it only requires basic commands, nothing too fancy. The objective it to able to type

C:\>java Compress -c aaaabbbbbcc

in the command prompt and it will print a4b5c2 (like it is compress the argument string).

The other objective is to type

C:\>java Compress -d a5b7c4

and it will print aaaaabbbbbbbcccc (like it will decompress the argument String). The decompression is the issue I'm having. Here is my code, any help I get is much appreciated.

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) {

    }
}

解决方案

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());
}

这篇关于COM pression和DECOM $ P $用Java参数字符串的pssion的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆