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