Java 弦与环练习测试
我对这道试题有点困惑。我制作了一张I、j和字符串值的图表。我得到了“nbearig”,但我的运行时正在打印数字。我不确定哪里出了错++i,-j表示它们在for循环之后的代码之前递增/递减,对吗Java 弦与环练习测试,java,string,loops,indexing,string-concatenation,Java,String,Loops,Indexing,String Concatenation,我对这道试题有点困惑。我制作了一张I、j和字符串值的图表。我得到了“nbearig”,但我的运行时正在打印数字。我不确定哪里出了错++i,-j表示它们在for循环之后的代码之前递增/递减,对吗 public class AlGore { public static void main(String[] args) { String mystery = "mnerigpaba"; String solved = ""; int len = m
public class AlGore {
public static void main(String[] args) {
String mystery = "mnerigpaba";
String solved = "";
int len = mystery.length();
for (int i = 0, j = len - 1; i < len/2; ++i, --j) {
solved += mystery.charAt(i) + mystery.charAt(j);
}
System.out.println(solved);
}
}
公共类算法{
公共静态void main(字符串[]args){
字符串谜=“mnerigpaba”;
字符串“”;
int len=summary.length();
对于(int i=0,j=len-1;i
您正在执行整数数学(因为char
是一个
这样您就可以执行字符串
串联。神秘.charAt(i)+神秘.charAt(j)代码>将添加这两个字符的数值。您可以通过在以下内容之前添加“”+
来强制字符串连接:
solved += "" + mystery.charAt(i) + mystery.charAt(j);
我不确定哪里出了错++i,-j表示它们在for循环之后的代码之前递增/递减,对吗
public class AlGore {
public static void main(String[] args) {
String mystery = "mnerigpaba";
String solved = "";
int len = mystery.length();
for (int i = 0, j = len - 1; i < len/2; ++i, --j) {
solved += mystery.charAt(i) + mystery.charAt(j);
}
System.out.println(solved);
}
}
1) 它们分别被预加/预减
2) 它发生在每次执行循环体之后
我的编译器正在打印数字
不,不是。编译器正在编译你的代码!!!JVM正在打印数字。。。当你运行代码时
要了解原因,请仔细查看以下内容:
solved += mystery.charAt(i) + mystery.charAt(j);
这相当于
solved = solved + ( mystery.charAt(i) + mystery.charAt(j) );
现在,括号中的表达式执行字符与字符的数字相加。根据Java表达式的规则,这将给出一个int
值。所以整个表达式变成:
solved = String.concat(
solved,
Integer.toString(mystery.charAt(i) + mystery.charAt(j));
我认为charAt(I)函数将返回一个字符串
否。它返回一个char
。。。就像方法名“charAt”所暗示的那样<代码>字符串和字符是根本不同的类型
注释:这是一个很好的试题,它测试您对循环的理解程度,以及您对Java表达式语义的理解程度。所以我被告知这是一个积分数学。我认为charAt(I)函数将返回一个字符串?例如,第一种情况是I=1,j=9。因此,它将是String.concat(已解,Integer.toString(summary.charAt(1)+summary.charAt(9))summary.charAt(1)=“n”summary.charAt(9)=“b”如何得到这些的整数值?是“a”=1,“b”=2?等等?我的书并没有很好地解释这个概念。不准确。summary.charAt(1)=“n”和summary.charAt(9)='b'
。这些值是char
。您可以通过将它们提升为整数并添加它们来添加它们。结果是int
。我想我可能不太理解charAt函数。在我的书中,它被定义为一个包含索引(整数)的函数参数并返回与该索引相对应的字符串中的字符。是否有我遗漏的内容?您没有遗漏有关charAt
的任何内容。您缺少的是对Java表达式如何工作的正确理解。而且(显然)string
和char
是根本不同的。