Java - 打印随机字

标签 java

我在练习时遇到了问题。我需要打印五个随机单词,介于最小和最大字母之间。

这是我所做的:

package Vjezba;
import acm.program.*;
import acm.util.RandomGenerator;

import java.util.*;

public class String2 extends ConsoleProgram {
public void run () {
    for (int i = 0; i<5; i++){
        String a = randomWord();
        println(a);
    }

}

private String randomWord() {
    int a = rgen.nextInt(MIN_LETTER, MAX_LETTER);
    for (int x=0; x<a; x++){
        String niz = "";
        char c = randomChar();
        niz += 'c';
    }
    return niz;

}



private char randomChar(){
    return (char) rgen.nextInt('a', 'z');
}

private static RandomGenerator rgen = new RandomGenerator();
private static int MIN_LETTER = 3;
private static int MAX_LETTER = 10;
    }

我在返回字符串时遇到问题。不知道该怎么做。

最佳答案

您在 for 循环中声明了 String;每次循环你都会得到一个新的(空的)字符串。您还添加了字符“c”,而不是 char c

的内容
String niz = "";
for (int x=0; x<a; x++){
    //String niz = "";
    char c = randomChar();
    niz += c; // c not 'c'
}

虽然在这种微不足道的情况下它并不重要,但 java 中的 String 是不可变的 - 它无法更改。每次执行 niz += c 时,它都会创建一个新字符串。任何时候你想要使用 StringBuilder 构建一个字符串:

StringBuilder niz = new StringBuilder();
for (int x=0; x<a; x++){
    char c = randomChar();
    niz.append(c);
}
return niz.toString();

关于Java - 打印随机字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7316774/

相关文章:

java - 比较两个大小不等的数组列表 - 比较后堆问题

java - jAudio 特征提取器 : Null Exception

java - 无法读取 XMLFile,异常 : java. io.FileNotFoundException : C:\Temp\logger. dtd(系统找不到指定的文件)

Java FileOutputStream 在系统中使用其他字符集保存文件名

java - 反射(reflection):如何找到一个接受对象列表的构造函数?

java - Spring MVC 在端点上使用相同的路径来返回不同的内容?

java - Guava 加载缓存 : How to unit test ListenableFuture within CacheLoader

java - 在 Java 中注释相对于 XML 的主要优点是什么

Java happens-before 关系

java - 行动执行方法的困难