java模拟一个trim方法,去除答案字符串两端的空白?

如题所述

Java中已经有提供了trim()方法来去除字符串两端的空白字符,但是如果要自己模拟实现,可以使用如下代码:

java
Copy code
public static String myTrim(String str) {
int start = 0;
int end = str.length() - 1;
while (start <= end && str.charAt(start) == ' ') {
start++;
}
while (start <= end && str.charAt(end) == ' ') {
end--;
}
return str.substring(start, end + 1);
}
上述代码中,首先定义了start和end变量分别指向字符串的起始和末尾位置,然后使用while循环去除字符串开头和结尾的空白字符,最后返回去除空白字符后的子字符串。可以使用如下代码进行测试:

java
Copy code
String str = " hello world ";
System.out.println(str.trim()); // 使用系统提供的trim方法去除空白字符
System.out.println(myTrim(str)); // 使用自定义的myTrim方法去除空白字符
输出结果为:

Copy code
hello world
hello world
可以看到,自定义的myTrim()方法和系统提供的trim()方法的效果是一样的。

需要注意的是,使用自定义的myTrim()方法去除空白字符时,需要注意原字符串是否为null。如果原字符串为null,则调用该方法会抛出NullPointerException异常。因此,在使用该方法时需要先进行空值判断。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-03-09
在Java中,可以使用以下代码定义一个`trim()`方法,用于去除字符串两端的空白:

```java
public static String trim(String str) {
if (str == null || str.isEmpty()) {
return str;
}
int start = 0;
int end = str.length() - 1;
while (start <= end && Character.isWhitespace(str.charAt(start))) {
start++;
}
while (end >= start && Character.isWhitespace(str.charAt(end))) {
end--;
}
return str.substring(start, end + 1);
}
```

在上述代码中,首先对传入的参数进行了非空判断,若为空或长度为0,则直接返回原字符串。然后,使用两个循环分别从字符串的头部和尾部开始扫描,将空白字符跳过,直到找到第一个非空白字符和最后一个非空白字符的位置。最后,使用`substring()`方法截取字符串子串,得到去除头尾空白字符后的结果。

以下是使用示例:

```java
String str = " hello world! ";
String trimmedStr = trim(str);
System.out.println(trimmedStr); // 输出"hello world!"
```
相似回答