while循环和递归都可以处理. 所以不要同时使用while循环和递归做同一件事, 容易死循环
修改的代码
public class StringDemo {public static void main(String[] args) {
String name = " 张三丰 "
System.out.println("字符串初始长度"+name.length())
String result = qukong(name)
System.out.println(result)
System.out.println("字符串去首位空格后的长度"+result.length())
}
public static String qukong(String string) {
if (string.startsWith(" ")) {
string = string.substring(1)
string =qukong(string) //处理后的值复制给string
}
if (string.endsWith(" ")) {
string = string.substring(0, string.length() - 1)
string =qukong(string)
}
return string
}
}
测试
字符串初始长度9张三丰
字符串去首位空格后的长度3
java提供了原生的去首尾空格的函数trim()源代码如下
public String trim() {int len = value.length
int st = 0
char[] val = value /* avoid getfield opcode */
while ((st < len) && (val[st] <= ' ')) {
st++
}
while ((st < len) && (val[len - 1] <= ' ')) {
len--
}
return ((st > 0) || (len < value.length)) ? substring(st, len) : this
}
java去掉空格,主要使用string的替换方法,如下:
1. String.trim()trim()是去掉首尾空格
2.str.replace(" ", "") 去掉所有空格,包括首尾、中间
String str = " hell o "
String str2 = str.replaceAll(" ", "")
System.out.println(str2)
3.或者replaceAll(" +","") 去掉所有空格
4.str = .replaceAll("\\s*", "")
可以替换大部分空白字符, 不限于空格
\s 可以匹配空格、制表符、换页符等空白字符的其中任意一个
5.或者下面的代码也可以去掉所有空格,包括首尾、中间
public String remove(String resource,char ch)
{
StringBuffer buffer=new StringBuffer()
int position=0
char currentChar
while(position<resource.length())
{
currentChar=resource.charAt(position++)
if(currentChar!=ch) buffer.append(currentChar) } return buffer.toString()
}