黑马程序员技术交流社区
标题:
模拟String中的trim函数
[打印本页]
作者:
耿渊博
时间:
2014-3-27 11:39
标题:
模拟String中的trim函数
本帖最后由 耿渊博 于 2014-3-31 10:16 编辑
看看下面代码怎么打出来的不是老正确啊
package com.Thread;
public class StringTest1 {
public static void sop(String str){
System.out.println(str);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = " abc def ";
sop("("+s+")");
s = myTrim(s);
sop("("+s+")");
}
//去除字符串两边的空格
public static String myTrim(String str){
int start = 0,end = str.length()-1;
while(start<end && str.charAt(start) == ' ')
start++;
while(start<end && str.charAt(end) == ' ')
end--;
return str.substring(start,end);
}
}
复制代码
作者:
何建明
时间:
2014-3-27 11:51
return str.substring(start,end+1)
因为subString 取的是不包含尾的, 要end+1 多一位。
作者:
追逐
时间:
2014-3-27 11:52
本帖最后由 追逐 于 2014-3-27 11:54 编辑
/*
1.模拟一个trim方法,去除字符串两端的空格。
思路:
1,判断字符串第一个位置是否是空格,如果继续向下判断,知道不是空格为止。
结尾处判断空格也是如此。
2,当开始和结尾都判断到不是空格时,就是要获取的字符串
*/
class MyTrim
{
public static void main(String[] args)
{
String s = " aaa ddd ";
String s1 = MyTrim.myTrim(s);
System.out.println(s); //去掉空格前
System.out.println(s1); //去掉空格后
}
//写一个属于我的去掉空格的函数myTrim
public static String myTrim(String str)
{
int start = 0, end = str.length() - 1; //定义前后角标的值
while(start <= end && str.charAt(start) == ' ') //charAt就是获取字符串一个start位置上的字符
start++;
while(start <= end && str.charAt(end) == ' ')
end--;
//调用substring函数获取角标值start到end+1的字符。因为这个获取方式包含头不包含尾。所以让end+1
return str.substring(start, end + 1); //因为其是取头不取尾。所以在这里加上一个一就可以了
}
}
复制代码
作者:
青木郎
时间:
2014-3-27 12:28
本帖最后由 青木郎 于 2014-3-27 12:31 编辑
不知道你为什么要自己写,好吧,既然你写了就说说,myTrim()
public static String myTrim(String str)
{
return str.trim();
}
String有专门的方法进行处理,
trim
public String trim()返回字符串的副本,忽略前导空白和尾部空白至于你的代码
substring
public
String
substring
(int beginIndex, int endIndex)返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。
改后class Test2 {
public static void sop(String str){ System.out.println(str); } public static void main(String[] args) { // TODO Auto-generated method stub String s = " abc def "; sop("("+s+")"); s = myTrim(s); sop("("+s+")");
} //去除字符串两边的空格 public static String myTrim(String str){ int start = 0,end = str.length()-1; while(start<end && str.charAt(start) == ' ') start++; while(start<end && str.charAt(end) == ' ') end--; return str.substring(start,end+1); }
}细心点啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2