我正在尝试使用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]);
}
});
附言-工作正常,仅从歌词数组中打印出值。只是randomNum奇怪地打印!
\
最佳答案
表达式randomNum + ' '
在连接到字符串lyrics[random]
之前首先被求值,因为它是从左到右求值的。两个值都提升为int
。 char
' '
升级为int
,结果为32
。向其添加随机数(0-3),范围为32-35。
通过添加String
" "
而不是char
' '
,强制字符串连接正常工作。
randomNum + " " + lyrics[randomNum]