黑马程序员技术交流社区

标题: 【疑问】StringBuffer获取的问题 [打印本页]

作者: 李春生    时间: 2012-11-4 21:20
标题: 【疑问】StringBuffer获取的问题
class StringBufferDemo
{
          //添加
          public static void method_add()
          {
              StringBuffer sb = new StringBuffer();
             
              sb.append("abc").append("true").append("34");
              sb.insert(1,"qq");
              sop(sb.toString());
                     
          }
          
          //删除
          public static void method_del()
          {
              StringBuffer sb = new StringBuffer("abcdefghi");
             
              sb.delete(2,3);//包含start不包含end
              sb.deleteCharAt(0);
              sop(sb.toString());
          }
          
          //获取
          public static void method_get()
          {
              StringBuffer sb = new StringBuffer("abcdefjhijklm");
              String str = sb.toString();
              sop(str.indexOf("b",4));
             
             
              //sop(sb.toString().indexOf('b'));
              //sop(sb.toString().lastIndexOf("b"));
              //sop(sb.toString().length());
              //sop(sb.toString().substring(0,4));


                     
          }
          
          
    public static void main(String[] args)
    {
       //method_add();
       //method_del();
       method_get();
    }

    public static void sop(String str)
    {
        System.out.println(str);       
    }       
}

红色部分的获取老是写不对,特来请教

作者: 陈云展    时间: 2012-11-4 21:47
  1. package com.snow;

  2. public class StringBufferDemo
  3. {
  4.           //添加
  5.           public static void method_add()
  6.           {
  7.               StringBuffer sb = new StringBuffer();
  8.               
  9.               sb.append("abc").append("true").append("34");
  10.               sb.insert(1,"qq");
  11.               sop(sb.toString());
  12.                      
  13.           }
  14.          
  15.           //删除
  16.           public static void method_del()
  17.           {
  18.               StringBuffer sb = new StringBuffer("abcdefghi");
  19.               
  20.               sb.delete(2,3);//包含start不包含end
  21.               sb.deleteCharAt(0);
  22.               sop(sb.toString());
  23.           }
  24.          
  25.           //获取
  26.           public static void method_get()
  27.           {
  28.               StringBuffer sb = new StringBuffer("abcdefjhijklm");
  29.               String str = sb.toString();
  30.               sop(String.valueOf(str.indexOf("m",1)));
  31.               
  32.             
  33.               //sop(sb.toString().indexOf('b'));
  34.               //sop(sb.toString().lastIndexOf("b"));
  35.               //sop(sb.toString().length());
  36.               //sop(sb.toString().substring(0,4));


  37.                      
  38.           }
  39.          
  40.          
  41.     public static void main(String[] args)
  42.     {
  43.        method_add();
  44.        method_del();
  45.        method_get();
  46.     }

  47.     public static void sop(String str)
  48.     {
  49.         System.out.println(str);        
  50.     }        
  51. }
复制代码
不知道你要干什么。但是建议你多查API文档。
作者: 朱宏青    时间: 2012-11-4 22:05
本帖最后由 朱宏青 于 2012-11-4 22:12 编辑

我看一下 大概什么情况?

大概知道了.

由于只有一个sop方法,并且参数只设定了一种,但是你这里有2个sop的参数录入,一个是int 一个是String, 所以适应了一个,另一个就出错了.

这里有2个方法,一个是再创一个public static void sop(int itemp){}方法来重载,

还有一个是修改sop的参数为public static void sop(Object ob){}为基类,这样无论参数是什么都是被录入.

你看着半吧~


作者: 李春生    时间: 2012-11-4 22:16
陈云展 发表于 2012-11-4 21:47
不知道你要干什么。但是建议你多查API文档。

为什么toString()不能用转换,要用valueOf()转换
作者: 陈云展    时间: 2012-11-4 23:45
李春生 发表于 2012-11-4 22:16
为什么toString()不能用转换,要用valueOf()转换

因为它是基本数据类型。你也可以。
  1.               sop("" + str.indexOf("m",1));
  2.               sop(("" + str.indexOf("m",1)).toString());
  3.               sop(Integer.valueOf(str.indexOf("m",1)).toString());
复制代码

作者: 李春生    时间: 2012-11-5 00:28
陈云展 发表于 2012-11-4 23:45
因为它是基本数据类型。你也可以。

太感谢了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2