题目1: 模拟一个trim方法,去除字符串两端的空格。
思路:
1.获取首部没有空格/空白字符的下标
2.获取尾部没有空格/空白字符的下标
3.从字符串中截取字符串
实现:
public class Test{
public static void main(String[] args){
String str =" abcdef ";
System.out.println(myTrim(str));
}
public String myTrim(String str){
int startIndex = 0;
int endIndex = 0;
//获取首部的非空格的下标
for (int i = 0; i < str.length(); i++){
if(str.charAt(i) != ' '){
startIndex = i;
break;
}
}
//获取尾部的非空格的下标
for (int i = str.length()-1; i >=0; i--){
if(str.charAt(i) != ' '){
endIndex = i;
break;
}
}
return str.substring(startIndex,endIndex+1);
}
}
题目2: 将一个字符串进行反转。将字符串中指定部分进行反转。
思路
1.将字符串进行拆分,将要反转的字符串从字符串中提出来
2.反转字符串
3.将拆分的字符串与反转字符串进行拼接
实现
public class Test{
public static void main(String[] args){
String str = "abcdef";
System.out.println(partReversal(str,2,4));
}
//部分字符反转
public String partReversal(String target,int startIndex,int endIndex){
String startStr = target.substring(0,startIndex);
String targetStr = target.substring(startIndex,endIndex);
String endStr = target.substring(endIndex);
return startStr+reverseString(targetStr)+endStr;
}
//字符串反序
public String reverseString (String str){
if (str.length() == 1){
return str;
}else{
String str2 = "";
for (int i = str.length() -1;i >= 0; i--){
str2 += str.charAt(i);
}
return str2;
}
}
}
题目3: 获取一个字符串在另一个字符串中出现的次数。
思路
1.需要传递一个匹配条件
2.将匹配条件生成一个正则表达式,并且初始化计数器
3.使用正则表达式进行匹配,计数器递增
实现
public class Test{
public static void main(String[] args){
String str = "abkkcadkabkebfkabkskab";
System.out.println(countStr(str,"k"));
}
//统计某个字符在字符串中出现的次数
public int countStr(String str,String tar){
Pattern regex = Pattern.compile(tar);
Matcher matcher = regex.matcher(str);
int count = 0;
while(matcher.find()){
count++;
}
return count;
}
}
未完待续……