java 显示一个单词的任意一个字母不起作用

qyuhtwio  于 2023-03-06  发布在  Java
关注(0)|答案(2)|浏览(104)

我想创建一个应用程序,用户必须猜测图标的公司名称。一切工作正常,但我想有一个按钮,打印一个提示用户。我想打印公司名称的1个随机字母。但公司名称和名称的长度,因为不同的水平变化。所以我想我必须得到公司名称的长度,然后选择一个随机数0-公司名称。然后我可以使用子字符串选择1随机字母的公司名称。但它不工作。以下是我的代码的重要部分:

Import java.util.Random;

int Laenge;
int BuchstabenPosition;
int DanachBuchstabenPosition;
Random r = new Random();
  
Laenge = companyName.length();
BuchstabenPosition = r.nextInt(Laenge);
DanachBuchstabenPosition = BuchstabenPosition += 1;
tvHint.setText("Ein Buchstabe: " + companyName.substring(BuchstabenPosition,DanachBuchstabenPosition));

当我运行应用程序并点击提示按钮时,它只显示“Ein Buchstabe:“。我希望你明白我想做什么,但这里有一个例子:
第一级:YouTube的图标,用户没有公司名称的线索,点击提示按钮,一个随机字母的单词显示,用户现在知道公司的名称,并获得第二级。
第二级:Stackoverflow图标,用户不知道公司名称,点击提示按钮,一个随机字母的单词显示。
如果每个公司名称都有相同的长度,我可以只做如下示例:

int BuchstabenPosition;
  int DanachBuchstabenPosition;
  Random r = new Random();

  BuchstabenPosition = r.nextInt(8);
  DanachBuchstabenPosition = BuchstabenPosition += 1;
  tvHint.setText("Ein Buchstabe: " + companyName.substring(BuchstabenPosition,DanachBuchstabenPosition));

但公司名的长度会改变。

b1zrtrql

b1zrtrql1#

此行:

DanachBuchstabenPosition = BuchstabenPosition += 1;

将首先递增BuchstabenPosition,然后将DanachBuchstabenPosition赋值为BuchstabenPosition的值。因此,BuchstabenPositionDanachBuchstabenPosition是相同的整数。对substring的调用将返回空字符串""
DanachBuchstabenPosition赋值为:

DanachBuchstabenPosition = BuchstabenPosition + 1;

所以它比BuchstabenPosition大1。
另外,考虑使用charAt,它更接近代码逻辑的要求。

bxjv4tth

bxjv4tth2#

我会这样做:

String name = "Oracle";

Random random = new Random();
int index = random.nextInt(name.length());
        
char randomChar = name.charAt(index);
        
System.out.println("Index:" + index + " Letter:" + randomChar);

相关问题