首页 > 其他 > 详细

编程算法基础-2.2串与数值的转换

时间:2014-04-24 15:42:41      阅读:491      评论:0      收藏:0      [点我收藏+]

2.2串与数值的转换

串与整数的转换

把任何东西转化为串,只要把它加上一个空串,任何值和串相加,结果都是串。

 

Integer.parseInt将串转换为整数

 

有时也采用直接的逻辑方式

 

串转整数

String s = “9527”;

/*串转整数
String s = "9527";
*/
 
package StringToInteger;
 
public class StringToInt {
    public static void main(String[] args) {
       String s = "9527";
      
       /*
       int n = s.charAt(0)-‘0‘;//ASCII-48,0的ASCII码为48
       n = n*10 + (s.charAt(1)-‘0‘);//为了不被下一个数字覆盖掉,把n*10再加上新的数字
        n = n*10 + (s.charAt(2)-‘0‘);
       */
       //写成循环如下
       int n=0;
       for(int i=0;i<s.length();i++){
           n = n*10 + (s.charAt(i)-‘0‘);
       }
       System.out.println(n);
    }
}
9527

黑洞数

int n = 5346;

6543-3456=3087;//最大-最小,不足补零

8730-0378=8352;

8352-2358........

最终我们会陷入到某一个数字再也出不来!

/*黑洞数
int n = 5346;
6543-3456=3087;//最大-最小,不足补零
8730-0378=8352;
8352-2358........
最终我们会陷入到某一个数字再也出不来!
*/
 
package StringToInteger;
 
import java.util.Arrays;
 
public class BlackHoleNumber {
    public static void main(String[] args) {
       int n = 9527;
      
      
       while(true){
           char c[] = (n+"").toCharArray();//把数字转为char数组
           Arrays.sort(c);//排序,从小到大
          
           int min = 0;//求最小值
           for(int i=0;i<c.length;i++){
              min=min*10+(c[i]-‘0‘);
           }
          
           int max = 0;//求最大值
           for(int i=c.length-1;i>=0;i--){//注意起始点为c.length-1
              max=max*10+(c[i]-‘0‘);
           }
           int n2 = max-min;
           System.out.println(max+"-"+min+"="+n2);
           if(n2==n){
              break;//如果进入黑洞循环,跳出
           }
           n = n2;
       }
    }
}
9752-2579=7173
7731-1377=6354
6543-3456=3087
8730-378=8352
8532-2358=6174
7641-1467=6174

翻译

把大写数字翻译为整数:

一四零零六 ==> 14006

二五七 ==> 257

/*
翻译
把大写数字翻译为整数:
一四零零六 ==> 14006
二五七 ==> 257
*/
package StringToInteger;
 
public class TranslateStringToNumber {
    public static void main(String[] args) {
       String s = "一二三四五六七八九零";
//     String s = "a";
      
       int n = 0;//初始化结果整数
       for(int i=0;i<s.length();i++){
           if(translateToNumber(s.charAt(i))==‘e‘){//默认返回e
              System.out.println("输入有误。");
              break;
           }else{
              n=n*10+(translateToNumber(s.charAt(i))-‘0‘);//不断地乘10+新的数
           }
       }
       System.out.println(n);
    }
   
    //将大写汉字转化为数字的方法
    public static char translateToNumber(char a){
       switch (a) {
       case ‘一‘: return ‘1‘;
       case ‘二‘: return ‘2‘;
       case ‘三‘: return ‘3‘;
       case ‘四‘: return ‘4‘;
       case ‘五‘: return ‘5‘;
       case ‘六‘: return ‘6‘;
       case ‘七‘: return ‘7‘;
       case ‘八‘: return ‘8‘;
       case ‘九‘: return ‘9‘;
       case ‘零‘: return ‘0‘;
       default: return ‘e‘;
       }
    }
}
1234567890

编程算法基础-2.2串与数值的转换,布布扣,bubuko.com

编程算法基础-2.2串与数值的转换

原文:http://blog.csdn.net/u011925500/article/details/24350477

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!