java - 向字符串添加字符

标签 java string char

import java.util.Random;

public class PasswordRandomizer {
    // Define the variables
    private Random random = new Random();
    private int passwordLength;
    private String password = "";

    public PasswordRandomizer(int length) {
        // Initialize the variable
        this.passwordLength = length;
    }

    public String createPassword() {
        // write code that returns a randomized password
        for(int i = 0; i < this.passwordLength; i++){
            int j = random.nextInt();
            char symbol = "abcdefghijklmnopqrstuvwxyz".charAt(j);
            this.password = this.password + symbol; 
        }
        return this.password;
    }
}

如何将字符添加到字符串中,我尝试了此操作,但收到此错误:

"Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -414383904".

最佳答案

因为random.nextInt()返回 -2,147,483,648 和 2,147,483,647 之间的值。

你想要的是random.nextInt("abcdefghijklmnopqrstuvwxyz".length())

我还会将“abcdefghijklmnopqrstuvwxyz”分配给一个常量。

private final static String ALPHABET = "abcdefghijklmnopqrstuvwxyz";

Char randomChar = ALPHABET.charAt(random.nextInt(ALPHABET.length()));

关于java - 向字符串添加字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26659486/

相关文章:

java - 如何使用Spring正确获取用户列表?

java - Hadoop : java. io.IOException : Call to localhost/127. 0.0.1 :54310 failed on local exception: java. io.EOFException

c++ - 如何重新排列弦方程?

c++ - 如何在类中初始化空终止字符数组

java - 为什么 Integer.getInteger 不起作用?

java - 某些 @Override 在 Oracle Java 中显示错误,但在 OpenJDK 中不显示

Java 字符串正则表达式替换方法从替换中删除反斜杠

r - 向字符串/字符向量中的每个元素添加可变长度填充

c - 如果 C 只能返回一个值(int、char 等),那么它如何返回字符串文字(字符数组)?

String 类的 Java 1.6 方法不适用于所有字符