本题目要求读入若干个代表整数的字符串,然后将其转化为整数。
如果该数>=10000且<=20000,则依次输出其对应的二进制字符串、八进制字符串、十六进制字符串。
否则将字符串中的每个数字抽取出来,然后将所有数字加总求和。
提示:参考jdk文档的Integer,
输入样例:
123
10000
-123
314159265
输出样例:
1 2 3 6
10011100010000,23420,2710
1 2 3 6
3 1 4 1 5 9 2 6 5 36
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String s;
while(true)
{
s = sc.nextLine();
//输入为空就跳出循环
if(s == null)
break;
int m = Integer.parseInt(s);
//如果输入是负的
if(m<0)
m = -m;
//System.out.println(m);
if(m>=10000&&m<=20000)
{
//要学会java内置的进制转化函数(Integer下的)
System.out.println(Integer.toBinaryString(m)+","+Integer.toOctalString(m)+","+Integer.toHexString(m));
}
else
{
StringBuilder ss = new StringBuilder(s);
int sum = 0;
for(int i = 0;i < ss.length();i++)
{
//遇到负号直接跳过去不读
if(s.charAt(i)=='-')
{
continue;
}
System.out.print(ss.charAt(i)+" ");
}
//统计求和
while(m!=0)
{
int i;
i = m%10;
sum += i;
m = m/10;
}
System.out.println(sum);
}
}
sc.close();
}
}