I need to create a method to geneate random (single) letter and return it as String, not as a char.
I saw solutions like this creating random char. But I need my method to return a String type.
I managed to build the following method:

public static String randomLetter(){
    int num = intInRange(0, 26) + 97;
    char [] temp = new char[1];
    temp[0] = (char) num;
    return new String(temp);
}

基于我们项目中已有的方法

public static int intInRange(int min, int max) {
    Random rnd = new Random();
    return rnd.nextInt(max - min) + min;
}

But I do not like what I currently have since I'm creating too many temporary variables to achieve the goal.
Is there a way to get similar result in a shorter way to avoid usage of char [] temp ?

推荐答案

像这样试一试.首先将返回的int转换为char,然后追加""以转换为字符串.

public static String randomLetter() { 
   return (char)(intInRange('a', 'z'+1)) +"";
}

由于String.valueOf()首先将char装箱为字符,然后对该对象调用String.valueOf(),因此我将直接调用Character.toString(),以避免额外的开销.

public static String randomLetter() {
    return  Character.toString(intInRange('a', 'z'+1));
}

Java相关问答推荐

Java取消任务运行Oracle查询通过JDBC—连接中断,因为SQLSTATE(08006),错误代码(17002)IO错误:套接字读取中断

在AnyLogic中增加变量计数

Spring Batch 5-不要让它在数据库中自动创建表

Spring Boot 3.2.2中的@Inject和@Resource Remove

RichFaces 3.x-Spring Boot-迁移web.xml

由于我在Main方法中关闭了 scanner ,但在该方法中创建了一个新的 scanner ,因此出现了错误

在JDK 1.8源代码中,为什么使用A-B 0来确定哪个更大,而不是A B?

如何在antlr4中跳过所有反斜杠-换行符而保留换行符?

如何在代码中将行呈现在矩形前面?

Spring安全令牌刷新和JWT签名与本地计算的签名不匹配

如何使用log4j2(Json)记录由";异常引起的所有";?

Java页面筛选器问题

Spring Validator批注不起作用

我该如何为我的类编写getter和setter方法?

在权限列表中找不到我的应用程序

在WHILE()循环初始化部分中声明和初始化变量的Java语法?

如何判断元素计数并在流的中间抛出异常?

窗口启动后不久,从java.awt.Graphics disapear创建的矩形

在不带instanceof或switch的java中记录模式

Spring Boot应用程序中的自定义constraintvalidator不会被调用