1.模拟一个trim方法,去除字符串两端的空格
public static void main(String[] args) {
String s1 = " aa bb cc ";
System.out.println(myTrim(s1));
}
public static String myTrim(String s) {
if (s == "") {
return s;
}
char[] chars = s.toCharArray();
int startIndex = 0;
int endIndex = 0;
for (int i = 0; i < chars.length; i++) {
if (chars[i] == ' '){
startIndex = i;
break;
}
}
for (int i = chars.length-1; i > 0 ; i--) {
if (chars[i] == ' ') {
endIndex = i;
break;
}
}
return s.substring(startIndex,endIndex);
}
2.将一个字符串进行反转。将字符串中指定部分进行反转
比如“abcdefg”反转为”abfedcg”
public static String myreverse(String str,int start,int end) {
String startStr = str.substring(0,start);
String midStr = str.substring(start,end);
String endStr = str.substring(end);
char[] chars = midStr.toCharArray();
String midStrReverse = "";
for (int i= chars.length-1;i>=0;i--) {
midStrReverse += chars[i];
}
return startStr+midStrReverse+endStr;
}
3.获取一个字符串在另一个字符串中出现的次数
比如:获取“ab”在“abkkcadkabkebfkabkskab”中出现的次数
public static int myTime(String string,String str) {
StringBuilder sb = new StringBuilder(string);
int length = str.length();
int time = 0;
while (sb.length() > 0) {
int i = sb.indexOf(str);
if (i >= 0) {
time++; //加1
sb = new StringBuilder(sb.substring(i+length));
}else {
break;
}
}
return time;
}
4. 获取两个字符串中最大相同子串。
比如:str1 ="abcwerthelloyuiodef“;str2="cvhellobnm"
public static String getMaxSameString(String str1, String str2) {
if (str1 != null && str2 != null) {
String maxStr = (str1.length() >= str2.length()) ? str1 : str2;
//(这里不能加=号,如果两个串的长度相等maxStr返回的就是str1,minStr返回的也是str1)
String minStr = (str1.length() < str2.length()) ? str1 : str2;
int length = minStr.length();
// abcwerthelloyuiodefabcdef ---->cvhellobnm
for (int i = 0; i < length; i++) {
System.out.println(i);
for (int x = 0, y = length - i; y <= length; x++, y++) {
String subString = minStr.substring(x, y);//不包含y
if (maxStr.contains(subString)) {
return subString;
}
}
}
}
return null;
}
5.对字符串中字符进行自然顺序排序。
提示:
1)字符串变成字符数组。
2)对数组排序,选择,冒泡,Arrays.sort();
3)将排序后的数组变成字符串
Arrays.sort(char [])
冒泡排序
String s = "abcdefkjdshfkajlds";
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length -1; i++) {
for (int j = 0; j < chars.length - i - 1; j++) {
if (chars[j] > chars[j+1] ) {
char temp = chars[j];
chars[j] = chars[j+1];
chars[j+1] = temp;
}
}
}
System.out.println(String.valueOf(chars));