1.模拟一个trim方法,去除字符串两端的空格。
public class TrimTest {
public static void main(String[] args) {
String s1=" a bc ";
int start=0;
int end=s1.length()-1;
if(s1!=null){
while(start
2.将一个字符串进行反转。将字符串中指定部分进行反转。比如abcdefg反转为abfedcg。
实现方式一:转换为char[]
public class ReverseTest {
public static void main(String[] args) {
String s="abcdefg";
int start=2;
int end=s.length()-1;
ReverseTest test=new ReverseTest();
String reverse = test.reverse(s, start, end);
System.out.println(s);
System.out.println(reverse);
}
public String reverse(String s,int start,int end){
if(s!=null){
char[] chars = s.toCharArray();
for(int i=start,j=end;i
实现方式二: 使用String的拼接
//使用String的拼接
public String reverse2(String s,int start,int end){
if(s!=null){
//第1部分
String reverseStr = s.substring(0, start);
//第2部分
for(int i=end;i>=start;i--){
reverseStr+=s.charAt(i);
}
//第3部分
reverseStr+=s.substring(end+1);
return reverseStr;
}
return null;
}
@Test
public void test1(){
String s="abcdefg";
String s1 = reverse2(s, 2, 5);
System.out.println(s1);
}
实现方式三: 使用StringBuffer/StringBuilder替换String
//方式三:使用StringBuffer/StringBuilder替换String
public String reverse3(String s,int start,int end){
if(s!=null){
StringBuilder builder = new StringBuilder(s.length());
//第1部分
builder.append(s.substring(0,start));
//第2部分
for(int i=end;i>=start;i--){
builder.append(s.charAt(i));
}
//第3部分
builder.append(s.substring(end+1));
return builder.toString();
}
return null;
}
@Test
public void test2(){
String s="abcdefg";
String s1 = reverse3(s, 2, 5);
System.out.println(s1);
}
3.获取一个字符串在另一个字符串中出现的次数。比如:获取"ab" 在 "abkkcadkabkebfkabkskab " 中出现的次数
public class GetCountTest {
public int GetCount(String mainStr,String subStr){
if(mainStr.length()>=subStr.length()){
int count=0;
int index=0;
//方式一:
// while((index=mainStr.indexOf(subStr)) !=-1){
// count++;
// mainStr=mainStr.substring(index+subStr.length());
// }
//方式二:
// int indexOf(String str, int fromIndex):
// 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始
while ((index=mainStr.indexOf(subStr,index))!=-1){
count++;
index+=subStr.length();
}
return count;
}
return 0;
}
@Test
public void test1(){
String s="abkkcadkabkebfkabkskab";
String test="ab";
int i = GetCount(s, test);
System.out.println(i);
}
4.获取两个字符串中最大相同子串。比如:str1 = "abcwerthelloyuiodef“;str2 = "cvhellobnm"
提示:将短的那个串进行长度依次递减的子串与较长的串比较。
//情况一:两个字符串中只有一个最大相同子串
public String compare(String s1,String s2){
if(s1!=null && s2!=null){
String maxStr=(s1.length()>=s2.length())? s1:s2;
String minStr=(s1.length()=s2.length())? s1:s2;
String minStr=(s1.length()
5.对字符串中字符 进行自然顺序排序 。
提示:
1)字符串变成字符数组
2)对数组排序,选择,冒泡 Arrays.sort
3)将排序后的数组变成字符串
public String Sort(String s){
if(s!=null){
char[] chars = s.toCharArray();
for(int i=0;ichars[j+1]){
char temp=chars[j];
chars[j]=chars[j+1];
chars[j+1]=temp;
}
}
}
//Arrays.sort(chars);
return new String(chars);
}
return null;
}
@Test
public void test(){
String s1="abcwerthelloyuiodef";
String sort = Sort(s1);
System.out.println(s1);
System.out.println(sort);
}