We help IT Professionals succeed at work.

Run Length Compression

navyretired
navyretired asked
on
224 Views
Last Modified: 2013-11-23
I have this for homework and I cannot figure out what I need to change to add spaces in between the output. I have tried everything I can think of can someone offer some help.
I included part of the code below.
Thanks

I am trying to set my output to
5 A, 1 B, 12 C, 3 D, 20 E

I currently get
5A1B12C3D20E
public static void main(String[] args) {
             RunLengthCompression RLC = new RunLengthCompression();
             String letter = "AAAAABCCCCCCCCCCCCDDDEEEEEEEEEEEEEEEEEEEE";
             System.out.printf(RLC.encode(letter));

Open in new window

Comment
Watch Question

Mick BarryJava Developer
CERTIFIED EXPERT
Top Expert 2010

Commented:
can u post your encode() method

Author

Commented:
Here it is. I did not post it before because I have someone using it in our class. I found my exact question and code from another assignment posted on another board from (I Think) someone in my class.
 public String encode(String source) {
        StringBuffer dest = new StringBuffer();
        for (int i = 0; i < source.length(); i++) {
            int runLength = 1;
            while( i+1 < source.length() && source.charAt(i) == source.charAt(i+1) ) {
                runLength++;
                i++;

Open in new window

Mick BarryJava Developer
CERTIFIED EXPERT
Top Expert 2010

Commented:
thats not all of it, need to see the code to help you put spaces in the required spots :)

Author

Commented:

public class RunLengthCompression {
 
    public String encode(String source) {
        StringBuffer dest = new StringBuffer();
        for (int i = 0; i < source.length(); i++) {
            int runLength = 1;
            while( i+1 < source.length() && source.charAt(i) == source.charAt(i+1) ) {
                runLength++;
                i++;
            }
            dest.append(runLength);
            dest.append(source.charAt(i));
        }
          
        return dest.toString();
    }
     public static void main(String[] args) {
             RunLengthCompression RLC = new RunLengthCompression();
             String letter = "AAAAABCCCCCCCCCCCCDDDEEEEEEEEEEEEEEEEEEEE";
             System.out.println(RLC.encode(letter));
             System.out.println();
           
    }
}

Open in new window

Java Developer
CERTIFIED EXPERT
Top Expert 2010
Commented:
This one is on us!
(Get your first solution completely free - no credit card required)
UNLOCK SOLUTION

Author

Commented:
Worked like a charm thanks

Author

Commented:
Is there anyway to edit or delete this question?
Unlock the solution to this question.
Join our community and discover your potential

Experts Exchange is the only place where you can interact directly with leading experts in the technology field. Become a member today and access the collective knowledge of thousands of technology experts.

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.