我正在尝试Android中的基本应用程序。以下代码打印出randomNum的32,33,34和35值。为什么这样做?
Button button = (Button) findViewById(R.id.button);final String[] lyrics = {"Caught in a Landslide!","No"," Escape","From Reality..."};
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Random rando = new Random();
int randomNum = rando.nextInt(4);
textView.setText(randomNum + ' ' + lyrics[randomNum]);
}
});
P.S。 - 它工作正常,只打印出歌词数组中的值。只是randomNum打印怪异! \
答案 0 :(得分:7)
在连接到字符串randomNum + ' '
之前,首先计算表达式lyrics[random]
,因为它是从左到右计算的。这两个值都会提升为int
。 char
' '
被提升为int
,结果为32
。随机数(0-3)加到它上面,产生的范围是32-35。
通过添加String
" "
而不是char
' '
来强制字符串连接正常工作。
randomNum + " " + lyrics[randomNum]