Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在toString()中获取垃圾而不是字符串_Java_Tostring - Fatal编程技术网

Java 在toString()中获取垃圾而不是字符串

Java 在toString()中获取垃圾而不是字符串,java,tostring,Java,Tostring,我有一个小房间。它是用eng字符获取字符串并返回rus字符的字符串音译;但它有点问题。我不知道是什么。它返回的不是俄语字符串,而是一些类似于[C@4057db80) public String getRussianSting(String engString) { char[] engCharString = engString.toLowerCase().toCharArray(); char[] rusCharString = new char[30]; for (

我有一个小房间。它是用eng字符获取字符串并返回rus字符的字符串音译;但它有点问题。我不知道是什么。它返回的不是俄语字符串,而是一些类似于[C@4057db80)

public String getRussianSting(String engString) {
    char[] engCharString = engString.toLowerCase().toCharArray();
    char[] rusCharString = new char[30];

    for (int i = 0; i <= engCharString.length - 1; i++) {
        if (engCharString[i] == ' ')
            continue;

        if (i + 1 <= engCharString.length - 1) {
            if (engCharString[i] == 'c' && engCharString[i + 1] == 'h') {
                rusCharString[i] = 'ч';
                i++;
                continue;

            } else if (engCharString[i] == 's' && engCharString[i + 1] == 'h') {
                rusCharString[i] = 'ш';
                i++;
                continue;

            } else if (engCharString[i] == 't' && engCharString[i + 1] == 'z') {
                rusCharString[i] = 'ц';
                i++;
                continue;

            } else if (engCharString[i] == 'y' && engCharString[i + 1] == 'i') {
                rusCharString[i] = 'ы';
                i++;

            } else if (engCharString[i] == 'y' && engCharString[i + 1] == 'e') {
                rusCharString[i] = 'э';
                i++;
                continue;

            } else if (engCharString[i] == 'y' && engCharString[i + 1] == 'u') {
                rusCharString[i] = 'ю';
                i++;
                continue;

            } else if (engCharString[i] == 'y' && engCharString[i + 1] == 'a') {
                rusCharString[i] = 'я';
                i++;
                continue;
            }
        }

        switch (engCharString[i]) {
            case 'a':
                rusCharString[i] = 'а';
                break;
            case 'b':
                rusCharString[i] = 'б';
                break;
            case 'v':
                rusCharString[i] = 'в';
                break;
            case 'g':
                rusCharString[i] = 'г';
                break;
            case 'd':
                rusCharString[i] = 'д';
                break;
            case 'e':
                rusCharString[i] = 'е';
                break;
            case 'j':
                rusCharString[i] = 'ж';
                break;
            case 'z':
                rusCharString[i] = 'з';
                break;
            case 'i':
                rusCharString[i] = 'и';
                break;
            case 'k':
                rusCharString[i] = 'к';
                break;
            case 'l':
                rusCharString[i] = 'л';
                break;
            case 'm':
                rusCharString[i] = 'м';
                break;
            case 'n':
                rusCharString[i] = 'н';
                break;
            case 'o':
                rusCharString[i] = 'о';
                break;
            case 'p':
                rusCharString[i] = 'п';
                break;
            case 'r':
                rusCharString[i] = 'р';
                break;
            case 's':
                rusCharString[i] = 'с';
                break;
            case 't':
                rusCharString[i] = 'т';
                break;
            case 'u':
                rusCharString[i] = 'у';
                break;
            case 'f':
                rusCharString[i] = 'ф';
                break;
            case 'h':
                rusCharString[i] = 'х';
                break;
            case '\'':
                rusCharString[i] = 'ь';
                break;
            default:
                break;
        }
    }
    return rusCharString.toString();
}
将返回显示数组对象表示形式的字符串。这是将char[]用于敏感数据而不是字符串的一个主要原因

尝试:

将返回显示数组对象表示形式的字符串。这是将char[]用于敏感数据而不是字符串的一个主要原因

尝试:


问题是,当您使用数组的toString时,它将使用它从对象类继承的toString

如果您想获得一个数组的正确toString,请使用java.util.Arrays.toString GruscharString。您看到的垃圾是该数组的哈希代码


如果要单独打印哈希代码,请使用rusCharArray.hashCode

问题是,当您使用数组的toString时,它将使用从对象类继承的toString

如果您想获得一个数组的正确toString,请使用java.util.Arrays.toString GruscharString。您看到的垃圾是该数组的哈希代码


如果要单独打印哈希代码,请使用ruscharray.hashCode

尝试返回新的StringrusCharString;@Supericy将该注释转换为答案。尝试返回新的StringrusCharString;@Supericy将该注释转换为答案。使用新的Stringchar[]会更快更简单。使用新的Stringchar[]会更快更简单谢谢你的解释谢谢你的解释
return rusCharString.toString();
return new String(rusCharString);