1.模拟trim()方法,去除字符串中前后两端的空格
package com.day7;
public class Trim {
public static void main(String[] args) {
//1.模拟trim()方法,去除字符串中前后两端的空格
String stringArrays = " 古来 圣贤 皆寂寞,惟有 饮者 留其名 ";
String num = Trim.trimString(stringArrays);
System.out.println(num);
}
public static String trimString(String stringArrays) {
//先判断字符串是否为空
if (stringArrays == null) {
return null;
}
//定义一个开始索引
int start = 0;
//定义一个结束索引
int end = stringArrays.length() - 1;
//从第一个位置开始判断是否为空
while (start <= end && stringArrays.charAt(start) == ' ') {
start++;
}
//从最后一个位置判断是否为空
while (end >= start && stringArrays.charAt(end) == ' ') {
end--;
}
//调用substring方法,从start截取到end的字符,包前不包后
return stringArrays.substring(start, end + 1);
}
}

2.去除字符串中所有的空格
package com.day7;
public class DeleteTrim {
public static void main(String[] args) {
//2.去除字符串中所有的空格
String stringArrays = " 古来 圣贤 皆寂寞,惟有 饮者 留其名 ";
System.out.println("方法一:");
DeleteTrim.deleteTrim1(stringArrays);
System.out.println();
System.out.println("方法二:");
DeleteTrim.deleteTrim2(stringArrays);
}
//方法1
public static void deleteTrim1(String stringArr) {
char[] charArr = new char[stringArr.length()];
for (int i = 0; i < stringArr.length(); i++) {
if (stringArr.charAt(i) != ' ') {
charArr[i] = stringArr.charAt(i);
System.out.print( charArr[i]);
}
}
}
//方法2
public static void deleteTrim2(String stringArr){
StringBuffer stringBuffers = new StringBuffer();
//把字符串转为char类型的数组
char[] chars = stringArr.toCharArray();
for (char c: chars) {
if (!Character.isWhitespace(c)){
stringBuffers.append(c);
}
}
String newStringArr = stringBuffers.toString();
System.out.println(newStringArr);
}
}

3.字符串反转,abcd ----> dcba
package com.day7;
import org.omg.CORBA.ARG_OUT;
public class Reversal {
public static void main(String[] args) {
//3.字符串反转,abcd ----> dcba 不准使用StringBuffer
String num = "abcd";
num.isEmpty();
String strReversal = Reversal.stringReversal1(num);
System.out.print("方法一:");
System.out.println(strReversal);
System.out.println("--------------------");
System.out.print("方法二:");
Reversal.stringReversal2(num);
System.out.println("--------------------");
System.out.print("方法三:");
Reversal.stringReversal3(num);
}
//方法一:
public static String stringReversal1(String strReversal) {
String strSum = " ";
for (int i = strReversal.length() - 1; i >= 0; i--) {
strSum += strReversal.charAt(i);
}
return strSum;
}
//方法二
public static void stringReversal2(String strReversal) {
char[] chars = strReversal.toCharArray();
StringBuffer stringBuffer = new StringBuffer();
for (int i = chars.length - 1; i >= 0; i--) {
stringBuffer.append(chars[i]);
}
System.out.println(stringBuffer.toString());
}
//方法三
public static void stringReversal3(String strReversal) {
char[] chars = strReversal.toCharArray();
int start = 0;
int end = chars.length - 1;
while (start < end) {
char tmp = chars[start];
chars[start] = chars[end];
chars[end] = tmp;
start++;
end--;
}
System.out.println(new String(chars));
}
}

4.获取一个字符串在另外一个字符串中出现的次数
package com.day7;
public class StringNum {
public static void main(String[] args) {
//4.获取一个字符串在另外一个字符串中出现的次数
String num1 = "abcd";
String num2 = "abcdabccdabcd";
StringNum.getString(num1, num2);
}
public static void getString(String str1, String str2) {
//先判断哪个字符串的长度更长
String maxString = str1.length() > str2.length() ? str1 : str2;
String minString = (maxString == str1) ? str2 : str1;
int count = 0;
int index = maxString.indexOf(minString);
while (index != -1) {
count++;
index = maxString.indexOf(minString, index + 1);
}
System.out.println("次数为" + count);
}
}

5.获取两个字符串中最大的相同子串
package com.day7;
public class MaxString {
public static void main(String[] args) {
//5.获取两个字符串中最大的相同子串
String num1 = "abcd";
String num2 = "abcdabccdabcd";
MaxString.maxString(num1,num2);
}
public static void maxString(String str1, String str2) {
//先判断哪个字符串的长度更长
String maxString = str1.length() > str2.length() ? str1 : str2;
String minString = (maxString == str1) ? str2 : str1;
for (int i = 0; i < minString.length(); i++) {
for (int j = 0, k = minString.length() - i; k != minString.length() + 1; j++, k--) {
String temp = minString.substring(j, k);
if (maxString.contains(temp)) {
System.out.println(temp);
return;
}
}
}
System.out.println("没有相同的子字符串");
}
}
