| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2557 人关注过本帖
标题:一个关于ArrayList的问题
只看楼主 加入收藏
ycxct
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-4-17
收藏
得分:0 
还没学到集合,用StringBuffer作了一下灌灌水
//输入一个整数,再由用户输入要删除数的个数,按原来的顺序排只是把要删除的数从中抽出
import java.io.*;
class xct{
  void output(String str,int n){
  StringBuffer sb=new StringBuffer(str);
  int i=0;
  //int l=sb.length();
  while(n!=0){ 
         if(sb.charAt(i)>sb.charAt(i+1)&&sb.charAt(i+1)!='0'){ //删除高位较大的数
     sb.deleteCharAt(i);
     n--;
     }
    else
     i++;
    if(i>=sb.length()-n)break; 
   }
  if(n!=0)sb.delete(i,sb.length());  //直接删除剩下的数
  System.out.println(sb);
 } 
 public static void main(String [] args) throws IOException{
  int n;
  String numstr;
  BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    do{
   System.out.print("请输入一个数 : "); 
     numstr=br.readLine(); 
    System.out.print("数字长度为 : "+ numstr.length()+"\n请输入要删除数字的位数 : ");
   n=Integer.parseInt(br.readLine());
   if(n<numstr.length())break; 
     else System.out.println("所删除位数不能大于数字长度,重新输入!");
  }while(true); 
   xct t=new xct();
  t.output(numstr,n); 
   } 
}



[此贴子已经被作者于2006-5-18 19:14:56编辑过]

2006-05-18 19:12
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
做出来就好了,恭喜
再接再励

可惜不是你,陪我到最后
2006-05-18 19:20
shiyide
Rank: 2
等 级:新手上路
威 望:4
帖 子:297
专家分:0
注 册:2006-2-22
收藏
得分:0 

楼下的那个谢谢 又让我学到了新的方法 `

我们也没学到集合 我是自学的 一起努力吧 ``
希望还有别的方法的都来贴!


学好编程,为中国的软件事业出一份力。
2006-05-18 21:24
shiyide
Rank: 2
等 级:新手上路
威 望:4
帖 子:297
专家分:0
注 册:2006-2-22
收藏
得分:0 
还有 你的有错误 我还没找出来 只是才试了下

不信你输入65466454
再输入4
你输出的是464
最小的应该是454

学好编程,为中国的软件事业出一份力。
2006-05-18 21:31
ycxct
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-4-17
收藏
得分:0 
QUOTE:
以下是引用shiyide在2006-5-18 21:31:00的发言:
还有 你的有错误  我还没找出来 只是才试了下

不信你输入65466454
再输入4
你输出的是464
最小的应该是454
哦,搞错了一点,思维上有点漏洞
if(sb.charAt(i)>sb.charAt(i+1)&&sb.charAt(i+1)!='0'){ //删除高位较大的数

这一句应该用“>=”

谢谢指教哦,一直很头痛编程上的小BUG

2006-05-18 21:44
shiyide
Rank: 2
等 级:新手上路
威 望:4
帖 子:297
专家分:0
注 册:2006-2-22
收藏
得分:0 

我的也有错误 那就不能输入从小到大的数字 如123456


学好编程,为中国的软件事业出一份力。
2006-05-18 21:52
ycxct
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-4-17
收藏
得分:0 
汗,还是有问题,当高位连续几个相同的数,地位有个较大的数时候输出结果不对,如985559432取4位时候,得重新构思一下了
2006-05-18 21:52
ycxct
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-4-17
收藏
得分:0 
呵呵,同病相怜阿,继续努力
2006-05-18 21:54
shiyide
Rank: 2
等 级:新手上路
威 望:4
帖 子:297
专家分:0
注 册:2006-2-22
收藏
得分:0 
恩 继续努力`

学好编程,为中国的软件事业出一份力。
2006-05-18 22:06
ycxct
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-4-17
收藏
得分:0 
难道得用穷举法了,仔细思索了一下,具体算法还挺复杂的。。。。
2006-05-18 22:07
快速回复:一个关于ArrayList的问题
数据加载中...
 
   



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

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