实现字符串反转(split(),reverse(),StringBuffer)
package com.kkb.task_010301_001;
public class Task01 {
public static void main(String[] args) {
String s = sReverse("abc abc");
System.out.println(s);
}
public static String sReverse(String str) {
String[] arr = str.split(" ");//通过split方法分割字符串,以空格分割
StringBuffer newStringBuffer = new StringBuffer();//创建新对象用于存放反转后的字符串
for (String s : arr) {
StringBuffer stringBuffer = new StringBuffer(s);//将数组中的字符串用一参构造方法创建
StringBuffer reverse = stringBuffer.reverse();//进行反转
newStringBuffer.append(reverse).append(" ");//将反转后的字符串拼接
}
return newStringBuffer.toString();//将StringBuffer对象转为String对象
}
}
字符串压缩(stringBuffer.append(),charAt())
package com.kkb.task_010301_001;
public class Task03 {
public static void main(String[] args) {
String aabbccss = compress("abcdd");
System.out.println(aabbccss);
}
public static String compress(String str) {
//先判断传入的字符串不能为空,为空的话返回本身
if (str.length() == 0) {
return str;
}
StringBuffer stringBuffer = new StringBuffer();
//指向字符串第一个字符
char ch = str.charAt(0);
//开始计数
int count = 1;
//循环遍历字符串从第二个开始
for (int i = 1; i < str.length(); i++) {
//如果相等计数+1
if (ch == str.charAt(i)) {
count++;
} else {
//如果不相等向StringBuffer里追加字符追加计数
stringBuffer.append(ch);
stringBuffer.append(count);
ch = str.charAt(i);
count = 1;
}
}
//循环结束,最后一个字符没有追加,在这追加
stringBuffer.append(ch);
stringBuffer.append(count);
return stringBuffer.length() > str.length() ? str : stringBuffer.toString();
}
}