【问题标题】:How do I print content of reference in JAVA?如何在 JAVA 中打印参考内容?
【发布时间】:2012-09-02 23:30:50
【问题描述】:

新手问题来了。试图让我了解 JAVA。

我如何打印出引用的内容而不仅仅是他们的位置?我的程序是从用户那里获取一些文本,然后以相反的顺序打印出来。

这是我的程序(到目前为止):

package myProgram;
import javax.swing.JOptionPane;
public class someRandomClass {
public static void main(String[] args) {
    String word = JOptionPane.showInputDialog("Write som text here");
    StringBuilder outPut = new StringBuilder();
    for (int i = word.length()-1; i>=0; i--){
        outPut.append(i);
    }
    System.out.println(outPut.toString());
  }
}

我很乐意提供任何帮助和提示! :)

【问题讨论】:

  • ...好吗?那你怎么称呼它?
  • 它被称为“引用”,与指针不同。如果您想了解java,请确保您了解java中的参考。
  • 您不必重新发明轮子 - 您已经在使用 StringBuilder 所以只需使用它的 reverse 方法。
  • 哦,好的。谢谢你告诉我:p

标签: java string sorting reference


【解决方案1】:

排队

 outPut.append(i);

您正在附加循环计数器的值。你肯定是说

 outPut.append(word.charAt(i));

【讨论】:

    【解决方案2】:

    您似乎附加了整数而不是适当的字符。试试这个:

    outPut.append(word.substring(i, i + 1))

    这样,word 的各个字符将附加到您的StringBuilder。请注意,append 方法也可以将char 作为参数,因此您也可以使用word.charAt(i)

    【讨论】:

    • 切勿使用substring(i, i + 1) 代替charAt(i)
    • 一个返回一个字符串,另一个返回一个字符。当然,您总是可以这样做 ("" + s.charAt(..)) 但无论如何,子字符串方法的缺点是什么?诚然,它会比 charAt 慢,但在这种情况下,它应该不会产生太大的影响。
    【解决方案3】:

    那么,您想在该位置发射角色吗?尝试使用String.charAt

    outPut.append(word.charAt(i));
    

    不过,我可能会避免这种情况,而只是从 String.toCharArray 索引 char[]

    说实话,我会避免手动执行反转循环...尝试如下操作:

    final String word = JOptionPane.showInputDialog("Enter text below");
    System.out.println(new StringBuilder(word).reverse());
    

    StringBuilder.reverse 应该为您完成工作(也可能以更有效的方式)。您也不需要手动调用toString,因为println 会为您完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多