Java中如何通过变量的值选取名称与之相同的已定义字符串变量
解决方案
你当前的思路无法直接实现:Java属于静态编译语言,运行时不能直接通过字符串格式的变量名调用对应变量,对你的需求来说最简便的实现方式是用数组存储所有歌词单词,不需要单独给每个单词定义n001、n002这类变量。
具体实现步骤:
- 第一步:把所有歌词单词按顺序存入String类型数组,数组的下标默认从0开始,你有297个单词的话下标范围刚好是0~296
- 第二步:生成随机数时直接生成0~296区间的整数,用随机数作为下标直接从数组里取出对应单词
- 第三步:累加5个取出单词的长度,除以5得到平均长度
示例代码如下:
import java.util.Random; public class LyricWordLength { public static void main(String[] args) { // 把所有歌词单词按顺序放到数组里,这里仅放前5个做示例,你把剩余292个补进数组即可 String[] lyrics = {"I", "look", "and", "stare", "so"}; Random bob = new Random(); int totalLength = 0; // 循环抽取5个随机单词 for (int i = 0; i < 5; i++) { // 生成0到单词总数-1的随机数,不用硬写297,后续增删单词也不用改随机数逻辑 int randomIndex = bob.nextInt(lyrics.length); String pickedWord = lyrics[randomIndex]; System.out.println("第"+(i+1)+"个选中单词:" + pickedWord); totalLength += pickedWord.length(); } double avgLength = totalLength / 5.0; System.out.println("5个单词的平均长度:" + avgLength); } }
如果你的统计抽样要求不允许重复抽取同一个单词,只需要加个逻辑存储已经抽到过的下标,生成新随机数时判断去重即可。
内容的提问来源于stack exchange,提问作者Rebekah Doody
相关产品推荐
相关产品推荐

