我想知道为什么双引号没有显示在实际输出中 - 就在等号后面:
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);
}
}
答案 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" + '"';