我把我的代码帖上来 这个是我测试过N次 没有BUG的:
import java.io.*;
import java.util.*;
public class ShuXueTI {
public static void main( String[] args ) throws IOException {
BufferedReader bfr = new BufferedReader( new InputStreamReader( System.in ));
System.out.println( "请输入一个整数" );
String str = bfr.readLine();
int size = str.length(); //你输入的数的长度
System.out.println( "请输入你要删除的位数" );
int desize = Integer.parseInt( bfr.readLine());
while( desize >= str.length() ) {
System.out.println( "删除的位数必数小于数的长度,请重新输入" );
desize = Integer.parseInt( bfr.readLine());
}
String result = "";
List vec = new ArrayList();//声明一个容器.困为他有min方法
while( desize != 0 ) {
for( int i = 0; i <= desize; i++ ) {
vec.add( i, String.valueOf( str.charAt(i)) );//替换原来的成员,不然是加到后面
}
vec = vec.subList( 0, desize+1 );//去掉后面的成员
result += Collections.min(vec);
int a = str.indexOf( Collections.min(vec).toString() );//取得刚才得到的数的位置
desize -= a ;//已经去掉了几位,还有几位
if( a != str.length() -1 ) {
str = str.substring( a + 1 );
}
else {
str = "";//如果是取到最后一位,就没有了
break;
}
if( result.length() == size - desize )
break;
}
if( result.length() != size - desize )
result += str;//不好解释要自已去理解
System.out.println( result );
}
}
[此贴子已经被作者于2006-8-25 16:22:45编辑过]
一个人的快乐,不是因为他拥有的多,而是因为他计较的少.