int num = 621126;
String secondHalfReverse = "";
String stringNum = "" + num;
String firstHalfProduct = stringNum.substring(0, 3);
String secondHalfProduct = stringNum.substring(3,6);
System.out.println("the first half is " + firstHalfProduct + " and the second half is: " + secondHalfProduct);
System.out.println(stringNum);
for(int i = 0; i < 3; i++)
{
int right = 1;
int left = 0;
String letter = secondHalfProduct.substring(left,right);
System.out.println(letter);
left++;
right++;
}
我收到的信件输出是: 1 1 1
而不是: 1 2 6
我只是不明白为什么信不会向上移动字符串并选择其他字母。
答案 0 :(得分:1)
因为每次循环时,左右都会重新设置为1.将它们放在循环之外并且它应该可以正常工作
答案 1 :(得分:0)
您应该将int left
和int right
的声明移到for循环之上。
每次执行循环时都会重置它们的值。如果将它们移出循环,情况就不会如此,它们会按预期增加。
答案 2 :(得分:0)
只需像这样更改循环,否则right
和left
变量将在每个循环中设置为1
和0
。
int right = 1;
int left = 0;
for (int i = 0; i < 3; i++) {
String letter = secondHalfProduct.substring(left, right);
System.out.println(letter);
left++;
right++;
}
答案 3 :(得分:0)
int right = 1;
int left = 0;
在for循环中声明,因此每次迭代都会重置。在for循环之前声明它们
答案 4 :(得分:0)
如果您不想使用for循环,有一种更简单的方法:
StringBuffer a=new StringBuffer("java hungry");
System.out.println(a.reverse());