今天看了一下String类的一些基本用法,以后的时间需要不断巩固自己对java基础的理解,所以写下来让自己可以不断的反复复习。
下面把这些简单的代码实现粘贴下来。
import java.lang.String;
public class StringDemos{
/**
答案一:1、模拟String类中trim方法
思路:
1.将字符串转换成字符数组
2.定义start 和 end 变量
3.判断收尾是否有空格,首有则start++,尾有则end--,保证start<end
4.可以用到subString(start,end)方法.截取空格
*/
public static String myTrim(String str){
int start = 0;
int end = str.length()-1;
char[] ch =str.toCharArray();
while((start<end)&&ch[start]==' ')
start++;
while((start<end)&&ch[end]==' ')
end--;
return str.substring(start,end);
}
/**
答案二:2、将Sting字符串翻转
思路:
1.将字符串转换成字符数组
2.定义for循环将指定的位置(x,y)进行字符位置转换
3.返回的结果转换成字符串
*/
public static String revertString(String str,int x,int y){
char[] ch = str.toCharArray();
char[] ch1 = swap(ch,x,y);
return new String(ch1);
}
public static char[] swap(char []ch, int x,int y){
for(;x<y;x++,y--){
char temp = ch[x];
ch[x] = ch[y];
ch[y] = temp;
}
return ch;
}
public static String revertString(String str){
return revertString(str,0,str.length()-1);
}
/**
答案三:3、获取一个字符串中另一个字符串出现的次数
思路:
1.定义一个count计数器,
2.调用indexOf(String str,int fromIndex)方法来获取字符串的当前索引值。
3.返回count
*/
public static int getCounts(String str,String key){
int count =0;
int index=0;
while((index=str.indexOf(key,index))!=-1){
index = index+key.length();
sop("index="+index);
count++;
}
return count;
}
/**
答案四:4、获取两个字符串中最大相同子串。
思路:
1.比较子串的大小,将大的子串作为目标子串。分割小的子串。
2.将子串从大到小来进行比较,如果出现相同的子串便是最大子串。
3.调用contains(CharSequence s)方法,比较是否有相同子串。
4.调用substring()方法来进行子串的截取。
*/
public static String maxString(String str1,String str2){
//进行子串的比较
String max = "";
String min = "";
max = (str1.length()>str2.length())?str1:str2;
min = (str1==max)?str2:str1;
//sop("max="+max+"...min="+min);
//寻找最大子串,两个变量,一个操作头一个操作尾
for(int x=0;x<min.length();x++){
for(int y=min.length();y>x;y--){
// sop("sub:=="+min.substring(x,y));
String str = min.substring(x,y);
if(max.contains(str)){
return str;
}
}
}
return "";
}
public static void main(String []args){
String s = "abdcefg";
sop("count="+maxString(s,"abdrf"));
}
public static void sop(String str){
System.out.println(str);
}
}