Java - 反向字符串null错误

时间:2015-03-07 17:17:45

标签: java string null

输入意图如下所示。 \ n 喀山河 \ n 6789 \ n Nzk462 \ n

然而,我收到的输出看起来像这样 kzn462nullnzk 为什么是这样?我怎么解决呢?

private void btnGenerateActionPerformed(java.awt.event.ActionEvent evt) {                                            

    secondname = JOptionPane.showInputDialog("Enter your surname:");
    firstname = JOptionPane.showInputDialog("Enter your firstname:");
    idno = JOptionPane.showInputDialog("Enter your idno:");
    nametag = firstname.substring(0, 1);
    initials = secondname + " " + nametag;

    int randnum;
    do {
        randnum = (int) (Math.random() * 900) + 100;
    } while (randnum % 2 != 0);

    code = secondname.replaceAll("[aeiou || AEIOU](?!\\b)", "")+randnum ;
    txaDisplay.append(initials + '\n' + idno.substring(6,10) + '\n' + code);

    int length = secondname.length();
    for (int i = length - 1; i >= 0; i--) {
        reverse = reverse + secondname.charAt(i);
    }
    String end = reverse + code;

   txaDisplay.append( reverse);

4 个答案:

答案 0 :(得分:2)

为什么不使用

new StringBuilder(secondname).reverse().toString()

撤销String?它更好,更简单,更有可维护性。

答案 1 :(得分:1)

  1. 从源字符串中获取字符数组
  2. 创建一个长度相同的新char数组
  3. 开始从0迭代到(sourceStringLength-1)
  4. 在每次迭代中,获取最后一个字符     从源数组的末尾开始填充新数组
  5. 从这个新数组

    创建一个新字符串
        String source = "abcdefg";
        char[] chars = source.toCharArray();
        char[] reverseChars = new char[source.length()];
        int len = source.length();
        for(int i= 0; i < len; i++){
            reverseChars[i] = chars[len-1-i];
        }
        String reverse = new String(reverseChars);
        System.out.println(reverse);
    

答案 2 :(得分:0)

因为您不想使用StringBuilder / StringBuffer。

试试这个

String reversedString="";
for(int i=inputString.length-1;i>=0;){
   reversedString+=inputString.charAt(i--);  
}

答案 3 :(得分:0)

我认为问题是你对逆向的定义,也许你有类似的东西:

String reverse;

然后你不要初始化你的&#34;反向&#34;所以当你的程序在你的循环中进行第一次连接时,它看起来像这样:

reverse = null + secondname.charAt(i);

将null值转换为字符串,以便在输出中可见。

我希望这些信息可以帮到你。

祝你好运。