【问题标题】:Using strings and variables in println statements在 println 语句中使用字符串和变量
【发布时间】:2011-10-04 06:32:11
【问题描述】:

我正在编写一个程序,通过询问用户的身高(以英寸和英尺为单位)来找到用户的理想体重。到目前为止一切看起来都很好,除了最后的声明,我返回给用户男性和女性的平均体重,并告诉他们他们的体重范围在 15% 之间。这是给我带来问题的代码:

System.out.println("For a male, the height " + foot "' " +
                   inches + "/""" + " and it's ideal weight is " + 
                   mWeight + "lbs. Anything between " + minMaleLb +
                   "lbs and " + maxMaleLb + "lbs is okay.");
System.out.println("For a female, the height " + foot "' " +
                   inches + "/""" + " and it's ideal weight is " + 
                   fWeight + "lbs. Anything between " + minFeMaleLb +
                   "lbs and " + maxFeMaleLb + "lbs is okay.");

以下是我在编译时收到的错误:

File: C:\Users\###\Java\IdealWeight.java  [line: 26]
Error: C:\Users\###\Java\IdealWeight.java:26: ')' expected
File: C:\Users\###\Java\IdealWeight.java  [line: 27]
Error: C:\Users\###\Java\IdealWeight.java:27: not a statement
File: C:\Users\###\Java\IdealWeight.java  [line: 27]
Error: C:\Users\###\Java\IdealWeight.java:27: ';' expected
File: C:\Users\###\Java\IdealWeight.java  [line: 29]
Error: C:\Users\###\Java\IdealWeight.java:29: not a statement
File: C:\Users\###\Java\IdealWeight.java  [line: 29]
Error: C:\Users\###\Java\IdealWeight.java:29: ';' expected
File: C:\Users\###\Java\IdealWeight.java  [line: 31]
Error: C:\Users\###\Java\IdealWeight.java:31: ')' expected
File: C:\Users\###\Java\IdealWeight.java  [line: 32]
Error: C:\Users\###\Java\IdealWeight.java:32: not a statement
File: C:\Users\###\Java\IdealWeight.java  [line: 32]
Error: C:\Users\###\Java\IdealWeight.java:32: ';' expected
File: C:\Users\###\Java\IdealWeight.java  [line: 34]
Error: C:\Users\###\Java\IdealWeight.java:34: not a statement
File: C:\Users\###\Java\IdealWeight.java  [line: 34]
Error: C:\Users\###\Java\IdealWeight.java:34: ';' expected
File: C:\Users\###\Java\Weight.java  [line: 30]
Error: C:\Users\###\Java\Weight.java:30: reached end of file while parsing
File: C:\Users\###\Java\Weight.java  [line: 34]
Error: C:\Users\###\Java\Weight.java:34: reached end of file while parsing

有人可以向我解释一下代码有什么问题吗?我将如何解决这个问题?

【问题讨论】:

  • 您还缺少一些 +。示例:foot "' " 而不是 foot + "' "

标签: java


【解决方案1】:

问题是您错误地转义了引号;那应该是

... + "\"" + ...

为引号。

编辑:正如 JB Nizet 在评论中指出的那样,您在 foot 之后缺少 +

此外,您还可以使用

进一步简化该表达式
... + "\" and the ideal weight is " + ...

而不是连接两个单独的字符串。

【讨论】:

    【解决方案2】:

    有了所有这些连接,我建议使用System.out.format(format, args);

    System.out.format("For a male, the height %d' %d\" and its ideal weight is %dlbs. Anything between %dlbs and %dlbs is okay.",
        foot, inches, mWeight, minMaleLb, maxMaleLb);
    

    你还有一个拼写错误:

    and it's ideal weight is
    

    应该是

    and its ideal weight is
    

    “its”在所有格形式中没有撇号(即不是“it's”)

    【讨论】:

    • 语法完全不对,你在抱怨撇号?
    【解决方案3】:

    "/""" 位看起来不对,可能会导致解析器关闭。也许你打算使用"\""(或者更简单,'"'

    【讨论】:

    • 啊,我不知道在 java 中你可以使用像 System.out.println('"'); 这样格式的字符串,但它似乎只能使用引号。我会请记住这一点,谢谢!
    • @mooles:单引号分隔(单个)字符,而不是字符串。但是打印方法和 StringBuilder 方法具有接受字符的重载。此外,字符串上的 + 运算符会自动将非字符串操作数转换为字符串;因此,例如,String s = "" + 123; 有效。
    • 我不知道您所说的“使用格式中的字符串”是什么意思。此答案不使用通常称为“字符串格式”的任何内容,System.out.println 是一种方法,而不是“格式”。
    猜你喜欢
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    • 2014-10-09
    • 2022-06-21
    • 2021-03-23
    • 1970-01-01
    相关资源
    最近更新 更多