String常见算法题目一:模拟一个trim方法,去掉字符串两端的空格
思路
- 创建一个形参为char数组的Trim方法,通过将输入的字符串转换为char数组的方式传递参数
- 在Trim方法中,对传递后的char数组进行遍历查询。
- 先检查数组的开头,如果开头存在空格,则将数组从后往前赋值,从而使开头的空格被取代,以此类推
- 然后先定义一个与char数组的长度相同的整型变量,再检查数组的结尾,如果发现结尾存在空格,则对整型变量进行自减操作
- 最后定义一个新的char数组,长度为之前定义的整型变量,对新char数组进行赋值,就可以去掉后端的空格了
代码
public class StringTest {
public String Trim(String str){
if (str != null){//判断字符串是否为空值
char[] chars = str.toCharArray();
for (int i = 0;i < chars.length;i++){
if (chars[0] == ' '){//判断数组开头是否为空格
for (int j = 0;j < chars.length-1;j++){
chars[j] = chars[j+1];//如果是空格,就将数组从后往前赋值,从而取代数组开头部分
}
}
else {
break;
}
}
int charLength = chars.length;//新数组的长度
for (int i = str.length() - 1;i >= 0; i--){
if (chars[i] == ' '){
charLength--;//如果数组结尾是空格,就减少一次新数组的长度
}
else{
break;
}
}
char[] lastChar = new char[charLength];
for (int i = 0; i < lastChar.length;i++){
lastChar[i] = chars[i];//对新数组进行赋值操作
}
return String.valueOf(lastChar);//返回trim()后的字符串
}
else{
System.out.println("不能为空字符串");
}
return null;
}
public static void main(String[] args) {
StringTest stringTest = new StringTest();
String str = " ";
String s1 = " hell oworld ";
System.out.println("***"+s1.trim()+"***");
System.out.println("***"+ stringTest.Trim(s1) +"***");
}
}
实现