1、字符串转化(压缩) "aabbccdaa" -> "a2b2c2d1 a2"函数原型:
public static String stringCompress(String str) {}
public class TestDemo {
public static String stringCompress(String str1) {
StringBuffer result = new StringBuffer();
char ch = 0;//取第一个字符
char c1 = str1.charAt(0);//连续字母的个数
int count = 0;
for (int i = 0; i < str1.length(); i++) {//循环取字符
char c2 = str1.charAt(i);//把前一个字符和当前字符比较
if (c1 == c2) {//相同的个数加一
count++;
continue;
}//拼接
result.append(count).append(c1);//当前字符变为前一字符
c1 = c2;//个数清零
count = 1;
}//加上最后一个字符和个数
result.append(count).append(c1);
return result.toString();
}
public static void main(String[] args) {
String str = new String("aabbbbccdeef");
System.out.println(stringCompress(str));
}
}
2、统计字符串中数字个数
//如: "abc21b416u"===>输出5函数原型:
public static int isNumeric(String str){}
public class TestDemo2 {
public static int isNumberic(String str) {
int count = 0;
char ch = 0;
for (int i = 0; i < str.length(); i++) {
ch = str.charAt(i);///获取str中的第i个字符
if (ch >= '0' && ch <= '9') {//判断此字符是否在0-9之间
count++;
}
}
return count;
}
public static void main(String[] args) {
String str = new String();
str = "6bo78mh84f5y9";
System.out.println("字符串中数字的个数:" + isNumberic(str));
}
}
3、题目: =====i am biter逆置为: biteram i函数原型:
public class TestDemo4 {
public static void reverse(char[] ch, int start, int end) {//倒置数组
char tmp;
tmp = ch[start];
ch[start] = ch[end];
ch[end] = tmp;
start++;
end--;
}
public static String reverseSentence(String str) {
char[] array1 = str.toCharArray();
String stringArray[]=str.split(" ");
StringBuffer Str=new StringBuffer();
int length=stringArray.length;
for(int i=0;i<length;i++){
Str.append(stringArray[length-i-1]+" ");//用StringBuffer将其逆转.
}
return Str.toString();//转换为String.
}
public static void main(String[] args) {
String str = new String();
str = "i am biter";
System.out.println("逆转后为:" + reverseSentence(str));
}
}
4、将一个数组从左开始第几位之前的进行旋转:左旋数组
如:将"abcdef"第 2位之前(a为0号位置)进行旋转--->》"cdefab"函数原型: :
public class TestDemo5 {
public static void leftRotateString(String str, int n) {
char[] array1 = str.toCharArray();
char[] arr1 = new char[array1.length];
int i = 0;
for (int j = n; j < array1.length; j++) {
arr1[i] = array1[j];
i++;
}
for (int j = 0; j < n; j++) {
arr1[i] = array1[j];
i++;
}
String str1 = new String(arr1);
str=String.valueOf(array1);
System.out.println(str1);
}
public static void main(String[] args) {
String str = new String();
str="abcdef";
leftRotateString(str,2);
}
}
public static void leftRotateString(String str,int n){}