输入格式:
每行一个整数或者浮点数。保证在浮点数范围内。
输出格式:
整数或者浮点数中的数字之和。题目保证和在整型范围内。
输入样例:
-123.01
234
输出样例:
7
9
代码:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
double a = sc.nextDouble();
String b = Double.toString(a);
//把double类型转化成字符串类型
int sum = 0;
char[] c = b.toCharArray();
for(int i = 0 ;i < c.length ; i++){
if(c[i] >= '0' && c[i] <= '9'){
sum = sum + (int)c[i] - 48;
//char 和 int 类型相差48
}
}
System.out.println(sum);
}
}
}
Double.toString(a) -->将double转化为String类型的一种方法
将Double转化成String的方法:
1.使用Double.toString( ) 方法:
double num = 99.03;
String str = Double.toString(num);
2.使用String.valueOf( ) 方法:
double num = 99.03;
String str = String.valueOf(num);
3.使用String.format( ) 方法:
double num = 99.03;
String str = String.format("%f",num);
b.toCharArray( ) -->将字符串转化为字符数组的一种方法
字符串和数组的相互转换:
String字符串转化为char[ ]数组
方法一:toCharArray( ) 方法
String str = "nine3";
char[] arr = str.toCharArray();
for(int i = 0 ; i < arr.length ; i++){
System.out.print(arr[i] + " ");
}//输出n i n e 3
方法二:split("") 方法
String str = "nine3";
String[] arr = str.split("");
for(int i = 0 ; i < arr.length ; i++){
System.out.print(arr[i] + " ");
}//输出n i n e 3
方法三:charAt( ) 方法
String str = "nine3";
char[] arr = new char[str.length()];//创建和a的长度一样的字符数组
for(int i = 0 ; i < arr.length ; i++){
arr[i] = str.charAt(i);
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}//输出n i n e 3
char[ ] 数组转换为String
方法一:Arrays.toString( ) 方法
char[ ] arr = {'n','i','n','e','3'}; // 非空的字符数组 String result = Arrays.toString(arr);
//使用前要导入包:
import java.util.Arrays;//放在整段代码的开头
方法二:String类的构造方法
char[ ] arr = {'n','i','n','e','3'};// 非空的字符数组
String result = new String(arr);
方法三:ValueOf( ) 方法
char[ ] arr = {'n','i','n','e','3'};// 非空的字符数组
String result = String.valueOf(arr);
方法四:利用空字符串
建立一个空的String字符串,通过for循环一个个放进去
char[ ] arr = {'n','i','n','e','3'};// 非空的字符数组
String result = ""; //创建一个空的字符串 这里是空的字符串,不是null(不存在)的字符串
for (int a = 0; a < arr.length; a++){
result += arr[a];
}