我有一个字符串作为输入,我想将整个字符串转换为小写,除了一个随机字母需要大写。
我尝试了以下方法:splitd是输入字符串数组
word1 = splited[0].length();
word2 = splited[1].length();
word3 = splited[2].length();
int first = (int) Math.random() * word1;
String firstLetter = splited[0].substring((int) first, (int) first + 1);
String lowcase1 = splited[0].toLowerCase();
char[] c1 = lowcase1.toCharArray();
c1[first] = Character.toUpperCase(c1[first]);
String value = String.valueOf(c1);
System.out.println(value);
当我尝试打印字符串时,它总是返回第一个字母为大写,而字符串的其余部分为小写。为什么不返回随机字母而是返回第一个字母。
干杯
理解您的问题的关键是您将word1乘以零。
您的代码int first = (int) Math.random() * word1;
每次都返回相同的数字,因为(int) Math.random()
每次都返回零。
这是Math.random()的Javadoc
返回一个带正号的双精度值,大于或等于0.0且小于1.0。
小于1且大于0的任何数字一旦转换为整数,即为零。这是因为浮点数被截断了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句