一、注意:
- java中java中int的取值范围为-2147483648到±2147483648。所以输入4294967295时不匹配,报错Exception in thread "main"java.util.InputMismatchException: For input string: “4294967295” at java.util.Scanner.nextInt(Scanner.java:2097)
- int,double型转换double转换为int,只去掉小数部分
System.out.println(3.0/2); //1.5
System.out.println(10.0/10); //1.0
System.out.println(10/10); //1
System.out.println((int)(3.0/2)); //1
System.out.println((int)(1.8)); //1
- 取余
System.out.println(10%3); //1
System.out.println(10.0%3); //1.0
- 注意4:字符串连
相对于+,推荐使用StringBuilder
//1.StringBuilder append
StringBuilder ans=new StringBuilder();
ans.append("abc");
ans.append("def");
//也可以写成ans.append("abc").append("def")
System.out.println(ans.toString());
//2.String +
String s1="abc";
String s2="def";
System.out.println(s1+s2);
//3.字符串与数值型同‘+’连接
String str="abc";
int i1=2;
System.out.println(str+i1);
二、题解
import java.util.Scanner;
public class Tom_1118 {
public static void main(String[] args){
//方法1:
// Scanner sc = new Scanner(System.in);
// while (sc.hasNext()) {
// int sum = 0;
// String n = sc.next();
// for (int i = 0; i < n.length(); i++)
// sum += n.charAt(i) - '0';
// System.out.println(sum);
// }
//方法2:
//注意:此处input应设为double型,int型范围不够大
Scanner sc=new Scanner(System.in);
int temp = 0;
while(sc.hasNext()){
int sum=0;
double input=sc.nextDouble();
for(int i=0;i<1000;i++){
if((input/Math.pow(10, i))==0.00)
{ temp=i;//确定input是i位数
break;
}
}
for(int j=temp;j>=1;j--){
sum += input % 10;
input= (int)((input-input % 10)/10);
}
System.out.println(sum);
}
}
}