pse*_*der 1 java random android
我在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]);
}
});
Run Code Online (Sandbox Code Playgroud)
PS - 它工作正常,只打印出歌词数组中的值.只是randomNum打印怪异!\
randomNum + ' '在串联到字符串之前,首先计算表达式lyrics[random],因为它是从左到右计算的.这两个值都被提升为int.该char ' '被提升为int,导致价值32.随机数(0-3)加到它上面,产生32-35的范围.
通过添加String " "而不是强制字符串连接来正常工作char ' '.
randomNum + " " + lyrics[randomNum]
Run Code Online (Sandbox Code Playgroud)