我正在尝试使用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]之前首先被求值,因为它是从左到右求值的。两个值都提升为intchar ' '升级为int,结果为32。向其添加随机数(0-3),范围为32-35。

通过添加String " "而不是char ' ',强制字符串连接正常工作。

randomNum + " " + lyrics[randomNum]

10-08 07:37