System.out.println()中这个引号代表什么?

时间:2014-07-05 02:44:55

标签: java

我想知道为什么双引号没有显示在实际输出中 - 就在等号后面:

String word = "" + c1 + c2 + "ll";

完整代码如下:

public class InstantMethodsIndexOf
{
    public void start()
    {
        String greeting = new String ("Hello World");

        int position = greeting.indexOf('r');
        char c1 = greeting.charAt(position + 2);
        char c2 = greeting.charAt(position - 1);

        **String word = "" + c1 + c2 + "ll";**

        System.out.println(word);
    }
}

6 个答案:

答案 0 :(得分:4)

当您将""传递给String时,您传递的是空String。如果要打印它们,则需要使用反斜杠转义引号。

示例:

String word = "\"" + c1 + c2 + "ll\"";

然后System.out.println(word)将打印:

  

“地狱”

正如你所看到的那样,我在开头就是一个双引号,最后是另一个双引号 (假设c1 == 'H'c2 == 'e'

答案 1 :(得分:2)

引号不会出现,因为您没有打印。你所拥有的是一个与其他内容连接的空字符串。

如果您需要引号,那么您应该执行以下操作:

String word = "\"" + c1 + c2 + "ll";

答案 2 :(得分:1)

这是一种让Java知道它从一开始就是一个字符串的方法,因为""是一个空字符串的String对象。

在您的代码中,它看起来并不实用。但下面是一个例子:

int a=10, b=20;
String word = a + b + "he"; // word = "30he"
String word2 = "" + a + b + "he"; // word2 = "1020he"

答案 3 :(得分:1)

  

我想知道为什么双引号没有在实际中显示   输出 - 在等号后面:

在使用双引号表示的java String中,双引号之间的数据被视为String值,但如果要包含双引号,则必须使用escape字符\"

此外,我建议您使用StringBuilder并将字符和String附加到其中,然后使用toString进行打印。

String str="ABC";//So value of String literal is ABC not "ABC"
String empty="";//is just empty but NOT Null
String quote="\"";//Here String has value " (One Double Quote)

答案 4 :(得分:1)

  

我想知道为什么双引号没有在实际中显示   输出 - 在等号后面:

String word = "" + c1 + c2 + "ll";

您声明连接的String

  • 空字符串""
  • c1
  • c2
  • 字符串文字"ll"

要显示引号并使代码更易于阅读,请尝试:

   String word = '\u0022' + c1 + c2 + "ll"

使用unicode字符值来打印双引号

答案 5 :(得分:1)

此代码

String greeting = "Hello World";         // <-- no need for new String()
int position = greeting.indexOf('r');    // <-- 8
char c1 = greeting.charAt(position + 2); // <-- 'd'
char c2 = greeting.charAt(position - 1); // <-- 'o'
String word = "" + c1 + c2 + "ll";       // <-- "" + 'd' + 'o' + "ll"

空字符串""用于将算术强制转换为字符串,因此它也可以写为

StringBuilder sb = new StringBuilder();
sb.append(c1).append(c2).append("ll");
String word = sb.toString();

StringBuilder sb = new StringBuilder("ll");
sb.insert(0, c2);
sb.insert(0, c1);
String word = sb.toString();

如果您想在word中加入双引号,可以使用\\或使用字符来逃避它们 -

char c1 = greeting.charAt(position + 2); // <-- 'd'
char c2 = greeting.charAt(position - 1); // <-- 'o'
String word = "\"" + c1 + c2 + "ll\"";   // <-- "\"" + 'd' + 'o' + "ll\""

String word = "" + '"' + c1 + c2 + "ll" + '"'; 
相关问题