通过键盘输入一串小写字母(a-z)组成的字符串。请编写一个字符串压缩程序。 将字符串中连续出现的重复字母进行压缩,并输出压缩后的字符串。
1.仅压缩连续重复出现的字符。比如字符串“abcbc”,由于无连续重复字符,压缩后的字符串还是“abcbc”。
2.压缩字段的格式为:字符重复的次数+字符。例如:字符串:"xxxyyyyyyz"压缩后就成为"3x6yz"。
public static void main(String[]args){Scanner scanner = new Scanner(System.in);String str = "";System.out.println("请输入一串字符:");str = Line();String result = compressLetters(str);System.out.println("压缩前的字符串:"+str);System.out.println("压缩后的字符串:"+result); }
public static String compressLetters(String letters){String resultStr = "";if (!StringUtil.isBlank(letters)){char[] strArry = CharArray();int index = 0;String mb = String.valueOf(strArry[0]);for (char c:strArry){if (mb.equals(String.valueOf(c))){index ++;}else {if (index == 1){resultStr += mb;}else {resultStr += index + mb;}mb = String.valueOf(c);index = 1;}}if (index == 1){resultStr += mb;}else {resultStr += index + mb;}}return resultStr; }
但是这样还不完美,因为有可能输入的是大写字母。所以加了判断大小写字母的方法:
/*** 通过键盘输入一窜小写字母(a-z)组成的字符串。请编写一个字符串压缩程序。* 将字符串中连续出现的重复字母进行压缩,并输出压缩后的字符串。* Created by chenying on 2018/11/26.*/ public class SuanFa8 {public static void main(String[]args){Scanner scanner = new Scanner(System.in);String str = "";System.out.println("请输入一串字符:");str = Line();String result = compressLetters(str);System.out.println("压缩前的字符串:"+str);System.out.println("压缩后的字符串:"+result);}public static String compressLetters(String letters){String resultStr = "";if (!StringUtil.isBlank(letters)){char[] strArry = CharArray();int index = 0;if (isUpperCase(strArry[0])){System.out.println("请输入小写字母!");return null;}String mb = String.valueOf(strArry[0]);for (char c:strArry){if (mb.equals(String.valueOf(c))){index ++;}else {if (index == 1){resultStr += mb;}else {resultStr += index + mb;}if (Character.isUpperCase(c)){System.out.println("请输入小写字母!");return null;}mb = String.valueOf(c);index = 1;}}if (index == 1){resultStr += mb;}else {resultStr += index + mb;}}return resultStr;}public static boolean isUpperCase(char c) {return c >= 65 && c <= 90;}public static boolean isLowerCase(char c) {return c >= 97 && c <= 122;} }
本文发布于:2024-02-04 05:28:03,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170700144852568.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |