class StringTool {
public static void main(String[] args) {
String str = " as dxvx c ";
str = myTrim(str); //首尾去除空格
System.out.println("首尾去除空格:" + str);
String str2 = "新中国好";
str2 = invert(str2);
System.out.println("字符串反转:" + str2);
str = "abcjavaabcjavaphpjava";
System.out.println("'java'出现的次数:" + getCount(str, "java")); //查询"java"出现的次数
String str1 = "qwerabcdtyuiop";
str2 = "xcabcdvbn";
System.out.println("获取两个字符串中最大相同的子串:" + getMaxSubstring(str1, str2));//abcd
}
//获取两个字符串中最大相同的子串
private static String getMaxSubstring(String str1, String str2) {
String max = (str1.length() > str2.length()) ? str1 : str2;
String min = max.equals(str1) ? str2 : str1;
for (int i = 0; i < min.length(); i++) {
for (int j = 0, z = min.length()-i; z <= min.length(); j++, z++) {//z能取到length,因为substring是[ )区间
String sub = min.substring(j, z);//j和z一前一后同时++,由长到短截取
// System.out.println(sub);
if(max.contains(sub))//判断max中是否有sub
return sub;
}
}
return null;
/*思路:
* 1,既然取得是最大子串,先看短的那个字符串是否在长的那个字符串中。
* 如果存在,短的那个字符串就是最大子串。
* 2,如果不是呢,那么就将短的那个子串进行长度递减的方式去子串,去长串中判断是否存在。
* 如果存在就已找到,就不用在找了。*/
}
//首尾去除空格
private static String myTrim(String str) {
char[] ch = str.toCharArray();
int startIndex = 0;
int endIndex = ch.length - 1;
for (int i = 0; i < ch.length; i++) {
if (ch[i] == ' ')
startIndex++; //确定开始索引值
else {
break;
}
}
for (int i = ch.length - 1; i >= 0; i--) {
if (ch[i] == ' ')
endIndex--; //确定结束索引值
else {
break;
}
}
return str.substring(startIndex, endIndex + 1);
//return new String(ch, startIndex, endIndex - startIndex + 1);
}
//字符串反转
private static String invert(String str2) {
char[] ch = str2.toCharArray();
for (int i = 0; i < ch.length / 2; i++) {
char t = ch[i];
ch[i] = ch[ch.length - i - 1];
ch[ch.length - i - 1] = t;
}
return String.valueOf(ch); //将字符数组转换为字符串
}
//查询指定字符串出现的次数
private static int getCount(String str, String target) {
int count = 0;
int fromIndex = 0; // 记录从哪个索引值开始寻找目标子串
while ((fromIndex = str.indexOf(target, fromIndex)) != -1) { //当找到该子串时
count++;
fromIndex = fromIndex + target.length(); //跳过已找到的"java",继续查找
}
return count;
}
}
字符串首尾去除空格—字符串反转—查询指定字符串出现次数
最新推荐文章于 2022-07-21 00:00:08 发布
本文展示了如何使用Java进行字符串处理,包括首尾空格去除、字符串反转、子串计数以及查找两个字符串的最大相同子串。这些方法在编程中经常用到,对于理解和操作字符串非常有帮助。
631

被折叠的 条评论
为什么被折叠?



