某外包公司笔试题

编程题:去掉字符串中多余的"0",
例如
0-->0
3-->3
000-->0
01010-->101
301100-->3011
00103-->103
1020.00-->1020
001.0100-->1.01
00.003-->0.003
若字符串中字符(,E+-)则为非法字符串。

public class RemoveZero {

    
/**
         * 
@param args
         
*/
    
static String removeFirst(String str) {
    
while (true) {
        
if (str.length() > 1) {
        
char c = str.charAt(0);
        
char nextC = str.charAt(1);
        
if (c != '0') {
            
break;
        } 
else {
            
if (nextC == '.') {
            
break;
            } 
else {
            str 
= str.substring(1);
            }
        }
        } 
else {
        
break;
        }
    }
    
return str;
    }

    
static String removeLast(String str) {
    
while (true) {
        
if (str.length() > 1) {
        
char c = str.charAt(str.length() - 1);
        
char beforeC = str.charAt(str.length() - 2);
        
if (c != '0') {
            
break;
        } 
else {
            
if (beforeC == '.') {
            str 
= str.substring(0, str.length() - 2);
            
break;
            } 
else {
            str 
= str.substring(0, str.length() - 1);
            }
        }
        } 
else {
        
break;
        }
    }
    
return str;
    }

    
static boolean isCorrect(String str) {
    
return !str.contains("E"&& !str.contains(","&& !str.contains("+")
        
&& !str.contains("-");
    }

    
public static void main(String[] args) {
    String str 
= "003E+3";
    
if (isCorrect(str)) {
        System.out.println(str 
+ "-->" + removeLast(removeFirst(str)));
    } 
else {
        System.out.println(
"字符串中含有非法字符(,E+-)!");
    }
    str 
= "0";
    
if (isCorrect(str)) {
        System.out.println(str 
+ "-->" + removeLast(removeFirst(str)));
    } 
else {
        System.out.println(
"字符串中含有非法字符,E+-!");
    }
    str 
= "3";
    
if (isCorrect(str)) {
        System.out.println(str 
+ "-->" + removeLast(removeFirst(str)));
    } 
else {
        System.out.println(
"字符串中含有非法字符,E+-!");
    }
    str 
= "000";
    
if (isCorrect(str)) {
        System.out.println(str 
+ "-->" + removeLast(removeFirst(str)));
    } 
else {
        System.out.println(
"字符串中含有非法字符,E+-!");
    }
    str 
= "01010";
    
if (isCorrect(str)) {
        System.out.println(str 
+ "-->" + removeLast(removeFirst(str)));
    } 
else {
        System.out.println(
"字符串中含有非法字符,E+-!");
    }
    str 
= "301100";
    
if (isCorrect(str)) {
        System.out.println(str 
+ "-->" + removeLast(removeFirst(str)));
    } 
else {
        System.out.println(
"字符串中含有非法字符,E+-!");
    }
    str 
= "00103";
    
if (isCorrect(str)) {
        System.out.println(str 
+ "-->" + removeLast(removeFirst(str)));
    } 
else {
        System.out.println(
"字符串中含有非法字符,E+-!");
    }
    str 
= "1020.00";
    
if (isCorrect(str)) {
        System.out.println(str 
+ "-->" + removeLast(removeFirst(str)));
    } 
else {
        System.out.println(
"字符串中含有非法字符,E+-!");
    }
    str 
= "001.0100";
    
if (isCorrect(str)) {
        System.out.println(str 
+ "-->" + removeLast(removeFirst(str)));
    } 
else {
        System.out.println(
"字符串中含有非法字符,E+-!");
    }
    str 
= "00.003";
    
if (isCorrect(str)) {
        System.out.println(str 
+ "-->" + removeLast(removeFirst(str)));
    } 
else {
        System.out.println(
"字符串中含有非法字符,E+-!");
    }
    }
}


posted on 2008-03-05 14:21 我为J狂 阅读(422) 评论(0)  编辑  收藏 所属分类: JavaSE


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿(11)

随笔分类(48)

文章分类(29)

常去逛逛

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜