JAVA如何在循环中添加基元值-(for)
我试着取一个随机数,拆分它,然后加上它的数字,所以数字“3457”将是。。。。。。。。3 + 4 + 5 + 7. 但我遇到了必须在循环中添加值的问题,但我发现这很困难,因为我循环中的大多数类型都是基本类型,因此我不能真正使用“nextInt()”方法。。。所以我的问题是。。。如何在循环中添加值。 这是我到目前为止的代码JAVA如何在循环中添加基元值-(for),java,loops,add,primitive-types,Java,Loops,Add,Primitive Types,我试着取一个随机数,拆分它,然后加上它的数字,所以数字“3457”将是。。。。。。。。3 + 4 + 5 + 7. 但我遇到了必须在循环中添加值的问题,但我发现这很困难,因为我循环中的大多数类型都是基本类型,因此我不能真正使用“nextInt()”方法。。。所以我的问题是。。。如何在循环中添加值。 这是我到目前为止的代码 import java.util.Scanner; public class HellloWorld { public static void main(String
import java.util.Scanner;
public class HellloWorld {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
try {
System.out.println("Please Enter your number: " + "\n");
int int1 = Integer.parseInt(input.next());
int life = String.valueOf(int1).length();
for (int i = life; i >= 1; i--) {
int int2 = int1 / (int)(Math.pow(10, i-1));
int int3 = int2 % (int)(Math.pow(10,1));
if (i == 1) {
System.out.print(int3 + " = ");
} else {
System.out.print(int3 + " + ");
}
}
} finally {
input.close();
}
}
}
sum
,有点像-
int sum = 0;
for(...) {
....
sum = sum + yourDigit;
if{...} else {...}
} //end of for loop
System.out.println(sum);
int sum = 0;
int input = int1;
while (input != 0) {
int lastdigit = input % 10; //(right to left) one's to tens to hundreds place value
sum += lastdigit; // sum = sum + lastDigit
input /= 10; // your if..else can be based on this value
}
sum
,有点像-
int sum = 0;
for(...) {
....
sum = sum + yourDigit;
if{...} else {...}
} //end of for loop
System.out.println(sum);
int sum = 0;
int input = int1;
while (input != 0) {
int lastdigit = input % 10; //(right to left) one's to tens to hundreds place value
sum += lastdigit; // sum = sum + lastDigit
input /= 10; // your if..else can be based on this value
}
您可以使用
Stream
这样做:
public static void main(String... args) {
Scanner sc = new Scanner(System.in);
String strNum = sc.next();
int sum = Arrays.stream(strNum.split(""))
.mapToInt(str -> Integer.parseInt(str))
.sum();
System.out.println(sum);
}
您可以使用
Stream
这样做:
public static void main(String... args) {
Scanner sc = new Scanner(System.in);
String strNum = sc.next();
int sum = Arrays.stream(strNum.split(""))
.mapToInt(str -> Integer.parseInt(str))
.sum();
System.out.println(sum);
}
我怪异但史诗般的做事方式:
public static void main(String[] args) {
int a = 1234; //say you get that number somehow... lets say thru Scanner
String b = String.valueOf(a); //convert to a string
int result = 0;
for (int i = 0; i < b.length(); i++) {
result = result + Integer.parseInt(Character.toString(b.charAt(i))); // here a conversation is happening of epic scale
}
System.out.println("result is: "+ result);
}
publicstaticvoidmain(字符串[]args){
int a=1234;//假设你以某种方式得到了那个数字……比如说通过扫描仪
String b=String.valueOf(a);//转换为字符串
int结果=0;
对于(int i=0;i
我怪异但史诗般的做事方式:
public static void main(String[] args) {
int a = 1234; //say you get that number somehow... lets say thru Scanner
String b = String.valueOf(a); //convert to a string
int result = 0;
for (int i = 0; i < b.length(); i++) {
result = result + Integer.parseInt(Character.toString(b.charAt(i))); // here a conversation is happening of epic scale
}
System.out.println("result is: "+ result);
}
publicstaticvoidmain(字符串[]args){
int a=1234;//假设你以某种方式得到了那个数字……比如说通过扫描仪
String b=String.valueOf(a);//转换为字符串
int结果=0;
对于(int i=0;i
实现这一点的方法太多了。我要在一个门派里有一条路下去这里有太多的方法可以做到这一点。我要在一个门派里走一段路谢谢,先生,这很有效。但如果我可以再问你一个问题的话。当for循环运行第一次迭代时。然后对语句“sum=sum+digit”进行求值,从而使“sum”的值等于“60”。从这里开始,sum的值现在是永久性的“60”而不再是初始化值吗?@Jamisco-在循环中,如果我可以这样说的话,sum永远不会被重新初始化。因此,该值仍然是循环中最后一次迭代中的值。谢谢,先生,它可以工作。但如果我可以再问你一个问题的话。当for循环运行第一次迭代时。然后对语句“sum=sum+digit”进行求值,从而使“sum”的值等于“60”。从这里开始,sum的值现在是永久性的“60”而不再是初始化值吗?@Jamisco-在循环中,如果我可以这样说的话,sum永远不会被重新初始化。因此,该值仍然是循环中最后一次迭代中的值。