有个 但是自己想不明白 所以想请教一下 题目如下:
一组数字“1234563987” 
需要把里面的3 替换成为33 不使用函数 希望大大能告诉我下 谢谢了 最好能加上注释 免得看不懂 不过如果能把思路说一下也万分感谢!
最后 谢谢您 !  期待您的回复!  
不使用函数的意思就是不使用replace()着种类型的函数 .

解决方案 »

  1.   

    使用String的toCharArray()方法,得到char数组,然后遍历数组,查找修改.然后创建新的String
      

  2.   

    class  test1
    {
    public static void main(String[] args) 
    {
    String s="1234563987";
    String []a=s.split("3");
    String str="";
    for(int i=0;i<a.length;i++)
    {

    if(i!=a.length-1)
    str+=a[i]+"33";
    else
    str+=a[a.length-1];
    }
    System.out.println(str);
    }
    }
      

  3.   

    C语言的:
    #include <stdio.h>
    #include <string.h>
    main()
    {
      char *pstr="1234563987",*p,*q;
      p=pstr;
      while(*p!='\0')
      {
        if(*p=='3')
        {
          for(q=pstr+strlen(pstr);q>p;q--)
          {
    *(q+1)=*q;
          }
          *(p+1)='3';
          p+=2;
        }
        else p++;
      }
      puts(pstr);
      

  4.   

    int[] result = {1,2,3,4,5,6,3,9,8,7};
    for(int i=0;i<result.length;i++){
    int temp = result[i];
    if(temp == 3){
    result[i]=33;
    }
    }
    for(int j=0;j<result.length;j++){
    System.out.print(result[j]+" ");
    }
    }
      

  5.   

    public static void main(String[] args) {
    //int[] result = {1,2,3,4,5,6,3,9,8,7};
    String str = "1234563987";
    StringBuffer sb = new StringBuffer();
    for(int i=0;i<str.length();i++){
    char temp = str.charAt(i);
    if(temp == '3'){
    sb.append('3');
    sb.append('3');
    }else{
    sb.append(temp);
    }
    }
    System.out.println(sb.toString());
    }
      

  6.   

    6楼的就是正解
    我稍微修改下6楼的第2个答案,O(∩_∩)O,这些都是常出现和用到的方法,比如String的charAt()方法和StringBuffer类的append()方法,public class Test { public static void main(String[] args) { String str = "1234563987";
    StringBuffer sb = new StringBuffer();

    char ch ;
    for(int i=0;i<str.length();i++){
    ch = str.charAt(i);
    if(ch=='3'){
    sb.append('3').append('3');
    }else{
    sb.append(ch);
    }
    }
    }
    }
    你有JDK帮助文档吧?
      

  7.   

    public class Demo {
    public static void main(String[] args) {

    //要修改的字符串
    String text="1234563987";
    //创建一个StringBuilder的对象
    StringBuilder text_=new StringBuilder("");
    //for循环读取要修改的字符串
    for(int i=0;i<text.length();i++){
    //如果字符串中的char值是3让它多添加一次
    if(text.charAt(i)=='3'){
    //相当于多添加了一次
    text_.append(text.charAt(i));
    }
    //通过for循环逐个把要修改的字符串中的字符一个一个添加都Builder对象中!
    text_.append(text.charAt(i));
    }
    //输出Builder对象
    System.out.println(text_);
    }}
    我看上面的朋友用的都StringBuffer对象!
    我用的是StringBuilder对象!
    因为在执行程序时StringBuffer会处理同步问题!而StringBuilder不处理同步!所以用StringBuilder对象的效率高!
      

  8.   

    public class T_insert { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO 自动生成方法存根 StringBuffer a = new StringBuffer("12345639837");
    String c = a.toString();
    char b[] = c.toCharArray();
    int i,j = 1;
    for( i=0; i<b.length; i++ )
    {
    if(b[i]=='3')
    {
    a = a.insert(i+j, '3');
    j++;
    }
    }
    System.out.print(a);
    }}
      

  9.   


    public class Replace3 { public static void main(String[] args) {
    String s = "1234563987";
    StringBuffer sb = new StringBuffer();
    char[] c = s.toCharArray();
    for(int i=0; i<c.length; i++){
    sb.append(c[i]);
    if(c[i] == '3'){
    sb.append('3');
    }
    }
    System.out.print(sb);
    }
    }
    做法好像都一样啊……
      

  10.   

    先将字符串换成数组,然后再组合。
    if(a[i].equals("3"))
    {
       a[i]="33";
    }
      

  11.   

    能转成字符串数组吗?好像string没这个方法耶
      

  12.   

    你可以下载个中文版的API帮助文档,好像StringBuffer类的方法的解释都是英文的。
      

  13.   

    //一组数字“1234563987” 需要把里面的3 替换成为33 不使用函数例如:replace()
     
    public class TestExtend{
       public static void main(String[] args){
       String str="1234563987";
       char[] s=str.toCharArray();
       for(int i=0;i<s.length;i++){ 
      if(s[i]==3){
      s[i]=33;
      }
      System.out.print(s[i]);
       }    
       }
      }
    输出结果:1234563987 不知哪错了?O_O.............