Упражнения на Java: создание базового метода сжатия строк с использованием количества повторяющихся символов
Java Basic: упражнение 208 с решением
Напишите Java-программу для создания базового метода сжатия строк с использованием количества повторяющихся символов.
Пример решения:
Java-код:
import java.util.Scanner;
public class StringCompression
{
public static void main(String[] args)
{
StringCompression str = new StringCompression();
String s1,s2;
Scanner in = new Scanner(System.in);
System.out.println("Enter a string (you can include space as well)");
s1 = in.nextLine();
//Trim all the spaces of the string using replaceAll method
s2 = s1.replaceAll("\\s","");
str.Compression(s2);
}
//Create a Java Method Compression to compress the string
public static String Compression(String s)
{
int count = 1;
StringBuilder sb = new StringBuilder();
//Below for loop counts all characters of the string apart from the last one
//The last character won't get appended by the class StringBuilder here as it
//does not enter the for loop once the length completes the count
for (int i = 1; i < s.length()-1 ; i++)
{
if (s.charAt(i) == s.charAt(i - 1))
{
count++;
}
else
{
sb.append(s.charAt(i - 1));
sb.append(count);
count = 1;
}
}
//Count the last character of the string
if (s.length() > 1)
{
//Compare the last two characters of the string
if (s.charAt(s.length() - 1) == s.charAt(s.length() - 2))
{
count++;
}
else
{
sb.append(s.charAt(s.length() - 2));
sb.append(count);
count = 1;
}
sb.append(s.charAt(s.length() - 1));
sb.append(count);
}
s = sb.toString();
System.out.println("The compressed string along with the counts of repeated characters is:" + "\n" +s);
return s;
}
}
Пример вывода:
Введите строку (вы также можете включить пробел) aaaabbbbcccccddddeeee Сжатая строка вместе с количеством повторяющихся символов: a4b4c5d4e4
Блок-схема 1:
Блок-схема 2:
Редактор кода Java:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите Java-программу для вычисления x n % y, где x, y и n - все 32-битные целые числа.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code