Write your code in the file Compress.java. Your code should go into a method wit
ID: 3937302 • Letter: W
Question
Write your code in the file Compress.java. Your code should go into a method with the following signature. You may write your own main method to test your code. The graders will ignore your main method: public static String compress (String original) {} Run-length encoding (RLE) is a simple "compression algorithm" (an algorithm which takes a block of data and reduces its size, producing a block that contains the same information in less space). It works by replacing repetitive sequences of identical data items with short "tokens" that represent entire sequences. Applying RLE to a string involves finding sequences in the string where the same character repeats. Each such sequence should be replaced by a "token" consisting of: the number of characters in the sequence the repeating character If a character does not repeat, it should be left alone. For example, consider the following string: After applying the RLE algorithm, this string is converted into: In the compressed string, "9w" represents a sequence of 9 consecutive lowercase "w" characters. "5e"represents 5 consecutive lowercase "e" characters, etc. Write a method called compress that takes a string as input, compresses it using RLE, and returns the compressed string. Case matters - uppercase and lowercase characters should be considered distinct. You may assume that there are no digit characters in the input string. There are no other restrictions on the input - it may contain spaces or punctuation. There is no need to treat non-letter characters any differently from letters.Explanation / Answer
Compress.java
public class Compress {
public static void main(String[] args) {
java.util.Scanner in = new java.util.Scanner(System.in);
System.out.println("Enter the String: ");
String s = in.next();
String compressString = compress(s);
System.out.println(compressString);
}
public static String compress (String original){
String str = "";
int count = 1;
for(int i=0; i<original.length()-1; i++){
if(original.charAt(i) == original.charAt(i+1)){
count++;
if(i == original.length()-2){
if(count == 1){
str = str + original.charAt(i);
}
else{
str = str + count + original.charAt(i);
}
}
}
else{
if(count == 1){
if(i == original.length() - 2){
str = str + original.charAt(i);
str = str + original.charAt(i+1);
}
else{
str = str + original.charAt(i);
}
}
else{
if(i == original.length() - 2){
str = str + count + original.charAt(i);
str = str + original.charAt(i+1);
}
else{
str = str + count + original.charAt(i);
}
}
count = 1;
}
}
return str;
}
}
Output:
Enter the String:
qwwwwwwwwweeeeerrtyyyyyqqqqwEErTTT
q9w5e2rt5y4qw2Er3T
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.