标题:编写实现字符串数组原地排序的功能
只看楼主
xiaolaba3330
Rank: 1
来 自:辽宁大连
等 级:新手上路
帖 子:175
专家分:0
注 册:2007-10-19
结帖率:100%
 问题点数:0 回复次数:14 
编写实现字符串数组原地排序的功能
编写实现字符串数组原地排序的功能。
建议:字符串数组可以自己直接定义并初始化;字符串可以通过上面的第8题得到,相当于练习使用与测试上面的类;查找功能可以定义成通用函数,放到自己的函数库中。
public class zy02 {
    public String s_str;
   public String[] d_str;
   public String f_str=" ,;''";
   public int k;
   
    public zy02(String s){
         s_str=new String(s);
    }
   
    public void setInfo(String s)
    {
         int i, j;
        i=0; k=0;
        while(i<s_str.length())
        {
            if (f_str.indexOf(s_str.charAt(i))>=0) {++i; continue;}
            j=i;
            while (i<s_str.length() && f_str.indexOf(s_str.charAt(i))==-1) ++i;
            ++k; //s_str.subString(j,i);
         }
         d_str=new String[k];
         i=0; k=0;
         while(i<s_str.length())
         {
             if (f_str.indexOf(s_str.charAt(i))>=0) {++i; continue;}
             j=i;
             while (i<s_str.length() && f_str.indexOf(s_str.charAt(i))==-1) ++i;
             d_str[k]=s_str.substring(j,i);
             ++k;
          }
      }
   public String paixu()
   {   
       setInfo(s_str);
        String[] b_str;
        b_str=new String[k];
       String ss=" ";
       int i,j,m,n,p,q;
       char x,y,t;
       for(i=0;i<k;i++)
       {
           ss=d_str[i];
           j=d_str[i].length();
           for(m=0;m<j-1;m++)
           {
             for (n=m+1;n<j;n++)
             {
                 x=ss.charAt(m);
                 y=ss.charAt(n);
                 if (x<y) {t=x;x=y;y=t;}
             }
             }
             b_str[i]=ss;
            
       }
       return b_str[i];
   }

    public static void main(String[] args) {
        zy02 s=new zy02("i an a good student congratulation!");
          System.out.println(s.paixu());
    }
}
麻烦大家帮忙找下错,我真的找不到了!!谢啦
搜索更多相关主题的帖子: public String 字符 str 原地 
2008-04-07 17:32
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
import java.util.*;
public class zy02 {
    public String s_str;
   public String[] d_str;
   public String f_str=" ,;''";
   public int k;
   
    public zy02(String s){
         s_str=new String(s);
    }
   
    public void setInfo(String s)
    {
         int i, j;
        i=0; k=0;
        while(i<s_str.length())
        {
            if (f_str.indexOf(s_str.charAt(i))>=0) {++i; continue;}
            j=i;
            while (i<s_str.length() && f_str.indexOf(s_str.charAt(i))==-1) ++i;
            ++k; //s_str.subString(j,i);
         }
         d_str=new String[k];
         i=0; k=0;
         while(i<s_str.length())
         {
             if (f_str.indexOf(s_str.charAt(i))>=0) {++i; continue;}
             j=i;
             while (i<s_str.length() && f_str.indexOf(s_str.charAt(i))==-1) ++i;
             d_str[k]=s_str.substring(j,i);
             ++k;
          }
      }
   public String[] paixu()
   {   
       setInfo(s_str);
       Arrays.sort(d_str);
       return d_str;
   }

    public static void main(String[] args) {
        zy02 s=new zy02("i an a good student congratulation!");
        
          System.out.println( Arrays.asList(s.paixu()) );
    }
}

学习需要安静。。海盗要重新来过。。
2008-04-07 18:43
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
import java.util.*;
public class zy02 {
    public String s_str;
   public String[] d_str;
   public String f_str=" ,;''";
   public int k;
   
    public zy02(String s){
         s_str=new String(s);
    }
   
    public void setInfo(String s)
    {
         int i, j;
        i=0; k=0;
        while(i<s_str.length())
        {
            if (f_str.indexOf(s_str.charAt(i))>=0) {++i; continue;}
            j=i;
            while (i<s_str.length() && f_str.indexOf(s_str.charAt(i))==-1) ++i;
            ++k; //s_str.subString(j,i);
         }
         d_str=new String[k];
         i=0; k=0;
         while(i<s_str.length())
         {
             if (f_str.indexOf(s_str.charAt(i))>=0) {++i; continue;}
             j=i;
             while (i<s_str.length() && f_str.indexOf(s_str.charAt(i))==-1) ++i;
             d_str[k]=s_str.substring(j,i);
             ++k;
          }
      }
   public String[] paixu()
   {   
       setInfo(s_str);
        //String[] b_str;
        //b_str=new String[k];
       String ss=" ";
       int i,j,m,n,p,q;
       //char x,y,t;
       for(i=0;i<k;i++)
       {
           for(m=0;m<k-1;m++)
           {
             if(d_str[m].compareTo(d_str[m+1])>0)
             {
                 String s=d_str[m];
                 d_str[m]=d_str[m+1];
                 d_str[m+1]=s;
                 }
             }
            
           
       }
       return d_str;
   }

    public static void main(String[] args) {
        zy02 s=new zy02("i an a good student congratulation!");
        
          System.out.println( Arrays.asList(s.paixu()) );
    }
}

[[it] 本帖最后由 sunkaidong 于 2008-4-7 18:54 编辑 [/it]]

学习需要安静。。海盗要重新来过。。
2008-04-07 18:52
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 
你们的题目不允许直接用类库现有的方法吗?

Fight  to win  or  die...
2008-04-07 19:10
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
呵呵,我也奇怪呢..估计是例题..这些题目用来练习挺好的...

学习需要安静。。海盗要重新来过。。
2008-04-07 19:12
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
import java.util.*;
public class zy02 {
    public String s_str;
   public String[] d_str;
   public String f_str=" ";
   public int k;
   
    public zy02(String s){
         s_str=new String(s);
         
    }
    public String[] paixu()
   {   
       d_str=s_str.split(f_str);
       Arrays.sort(d_str);
       return d_str;
   }

    public static void main(String[] args) {
        zy02 s=new zy02("i an a good student congratulation!");
        
          System.out.println( Arrays.toString(s.paixu()));
    }
}

学习需要安静。。海盗要重新来过。。
2008-04-07 19:47
xiaolaba3330
Rank: 1
来 自:辽宁大连
等 级:新手上路
帖 子:175
专家分:0
注 册:2007-10-19
得分:0 
1.import java.util.*;是什么意思?是不是和 Arrays有关的?

2. public String[] paixu()
是不是涉及到字符串数组的都而可以这样定义函数呢?
3. public String paixu()
   {   

       return b_str[i];
   }
我的这种做法错在哪儿呢?

4.我想找些难度比较浅的题目先来熟悉一下,能给我推荐基本书吗?或者有什么简单的题目也行!

[[it] 本帖最后由 xiaolaba3330 于 2008-4-7 21:13 编辑 [/it]]

编程学习中~~
2008-04-07 21:06
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
1.import java.util.*;是什么意思?是不是和 Arrays有关的?//是的.里面有很多模板和泛型设计

2. public String[] paixu()
是不是涉及到字符串数组的都而可以这样定义函数呢?//你要返回的数组所以这样定义
3. public String paixu()
   {   

       return b_str[i];
   }
我的这种做法错在哪儿呢?//你要返回数组首地址就好了

4.我想找些难度比较浅的题目先来熟悉一下,能给我推荐基本书吗?或者有什么简
单的题目也行!//think in java 书不错...

学习需要安静。。海盗要重新来过。。
2008-04-07 21:19
xiaolaba3330
Rank: 1
来 自:辽宁大连
等 级:新手上路
帖 子:175
专家分:0
注 册:2007-10-19
得分:0 
3. public String paixu()
   {   

       return b_str[i];
   }
我的这种做法错在哪儿呢?//你要返回数组首地址就好了
你的意思是说假如说我的题目只要求返回数组的首地址才能这么定义吗?还是说我写return b_str[0]能输出和你给的程序一样的结果吗?

[[it] 本帖最后由 xiaolaba3330 于 2008-4-7 21:24 编辑 [/it]]

编程学习中~~
2008-04-07 21:21
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
我吗?我看完书要消化..现在是把书消耗掉...windows高级编程  c++primer3和4 mfc  think in java1和3  和c#  这阶段能消化掉就不错了......返回数组名字可以当数组用...

[[it] 本帖最后由 sunkaidong 于 2008-4-7 21:27 编辑 [/it]]

学习需要安静。。海盗要重新来过。。
2008-04-07 21:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-207585-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.194744 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved