前面我们具体的介绍了Java中常用的两种函数,一种是Math类,另一种是String类,并且对于每个类中的具体方法都举了相关实例,这次我们再来对String类中的几个方法做一些练习。
class Test03{
public static void main(String[] args){
/*
问题1:求s2在s1中出现的次数
s1 = "12376128736123123612312312536123123"
s2 = "12"
*/
question1();
/*
问题2:判断字符串s是否是回文字符串
s="上海自来水来自海上"
*/
question2();
/*
问题3:模拟trim的功能,自定义实现
s=" 123123123 "
*/
question3();
/*
问题4:求s1和s2中最大的相同子串(s1.length()>s2.length())
s1="Python is a program language but is slow";
s2="Java is a program language but is fast"
*/
question4();
}
public static void question1(){
/*
问题1:求s2在s1中出现的次数
s1="12376128736123123612312312536123123"
s2="12"
*/
String s1 = "12376128736123123612312312536123123";
String s2 = "12";
int count = 0;
for(int i = 0;i < s1.length() - s2.length() + 1;i++){
String sub = s1.substring(i,i + s2.length());
if(sub.equals(s2)){
count++;
}
}
System.out.println("s2在s1中出现了" + count + "次");
}
public static void question2(){
/*
问题2:判断字符串s是否是回文
s="上海自来水来自海上"
*/
String s = "上海自来水来自海上";
int left = 0;
int right = s.length() - 1;
boolean flag = true;
while(true){
if(s.charAt(left) == s.charAt(right)){
left++;
right--;
if(left >= right){
break;
}
}else{
flag = false;
break;
}
}
System.out.println("s是回文吗: " + flag);
}
public static void question3(){
/*
问题3:模拟trim的功能,自定义实现
s=" 123123123 "
*/
String s = " 123123123 ";
int left = 0;
int right = s.length() - 1;
while(s.charAt(left) == ' '){
left++;
}
while(s.charAt(right) == ' '){
right--;
}
String res = s.substring(left,right + 1);
System.out.println("[" + res + "]");
}
public static void question4(){
/*
问题4:求s1和s2中最大的相同子串(s1.length()>s2.length())
s1="Python is a program language but is slow";
s2="Java is a program language but is fast"
字串为 " is a program language but is "
*/
String s1 = "Python is a program language but is slow";
String s2 = "Java is a program language but is fast";
boolean flag = true;
for(int len = s2.length();len >= 1;len--){
for(int i = 0,j = len - 1;j < s2.length();i++,j++){
String sub = s2.substring(i,j + 1);
// System.out.println(sub);
if(s1.contains(sub)){
flag = false;
System.out.println("结果就是[" + sub + "]");
break;
}
}
if(!flag){
break;
}
}
}
}
运行结果:
s2在s1中出现了9次
s是回文吗: true
[123123123]
结果就是[ is a program language but is ]
这串代码中举了关于String类中的4个方法的实例,具体的运算过程和步骤在代码中都写得很详细,感谢大家的观看!