【问题标题】:Creating ASCII Art in Java在 Java 中创建 ASCII 艺术
【发布时间】:2014-10-02 06:55:02
【问题描述】:

所以对于我的 Java 入门课程,我想用 ASCII 创建一个姜饼人。这是第一个作业,所以本课程目前只涉及 println 语句。我在 OSX 64 位上为 Java 开发人员使用 Eclipse IDE。

这就是我现在拥有的:

import acm.program.*;

public class ASCIIArtProgram extends ConsoleProgram {

    public void run() {
        println("   _   ");
        println(" _(")_ ");
        println("(_ . _)");
        println(" / : \ ");
        println("(_/ \_)");
    }

}

我在第 7 行遇到错误的某些原因。它不断将分号更改为冒号。

错误:

  • 令牌“_”的语法错误,AssignmentOperator 无效

  • 双引号未正确关闭字符串文字

程序应该输出这个:

   _
 _(")_
(_ . _)
 / : \
(_/ \_)

我对自己做错了什么感到困惑。

【问题讨论】:

  • 您需要阅读更多有关 Java 基础知识的内容。请参阅“转义字符”。在此处查看此页面link
  • @MeenaO - 查看此问答。

标签: java eclipse macos


【解决方案1】:

你在哪里

println(" _(")_ ");
            ^

字符串中的引号终止了字符串。这就是带引号的字符串的工作方式。 如果要在字符串中打印引号inside,则需要有

println(" _(\")_ ");

您还会发现您还需要将打印的\ 替换为\\,因为\ 本身具有“转义下一个字符”的特殊含义。

public void run() {
    println("   _   ");
    println(" _(\")_ ");
    println("(_ . _)");
    println(" / : \\ ");
    println("(_/ \\_)");
}

【讨论】:

    【解决方案2】:

    您必须转义要打印的特殊字符,因为编译器不知道您的" 是指print " 还是start/stop a String\ 也是如此。

    要转义一个字符,只需在它前面写一个\。所以:

    • " 变为 \"
    • \ 变为 \\

    您可以在 Oracle 的 Java Tutorials 中阅读有关字符和转义的更多信息。

    【讨论】:

      【解决方案3】:

      仔细看看……

      println(" _(")_ ");
              ^---^---^
      

      您打开、关闭和打开引号," _(" 是正确的 String 文字,)_ " 就编译器而言是垃圾,因为它不是任何可以解释的有效 Java 命令。

      你需要转义第二个引号,例如...

      println(" _(\")_ ");
      

      这将使 Java 忽略它并将其视为(字面上)作为Strings 内容的一部分...

      \也有特殊含义,如你所见,你也需要转义...

      println(" / : \\ ");
      println("(_/ \\_)");
      

      【讨论】:

        【解决方案4】:

        你需要引用反斜杠

        在您的字符串中使用\\ 而不是\

        因此:

        println(" / : \\ ");
        

        here 当您想在字符串文字中使用它们时必须转义/引用的所有字符的列表

        【讨论】:

          猜你喜欢
          • 2019-08-19
          • 2013-06-27
          • 1970-01-01
          • 2016-10-12
          • 2010-12-14
          • 1970-01-01
          • 1970-01-01
          • 2016-02-11
          • 1970-01-01
          相关资源
          最近更新 更多