public class Test {
public static void main(String[] args) {
String s = null;
String s1 = null;
Integer i = null;
Integer i1 = null;
System.out.println(s+i);
System.out.println(i+s);
System.out.println(s+s1);
try {
System.out.println(i+i1);
} catch (NullPointerException np) {
System.out.print("NullPointerException");
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题很简单 - 为什么我NullPointerException只收到最后一行?
我知道以下内容:
String s = null;
System.out.println("s: " + s);
Run Code Online (Sandbox Code Playgroud)
将输出:s: null.
我如何才能输出s: ??
在我而言,这是重要的,因为我有来连接String从4个值s1, s2, s3, s4,其中每个值可能会或可能不会具有null价值.
我问这个问题,因为我不想要检查的S1到S4的每一个组合 (即检查是否这些变量null)或更换"null"用empty String在最后,我想可能有一些更好的方式来做到这一点.
我有以下代码
System.out.println("" + null);
Run Code Online (Sandbox Code Playgroud)
而输出是null.
Java如何在字符串连接中发挥作用?
如果我有几个变量,例如
var t1 = "123";
var t2 = null;
var t3 = "456";
Run Code Online (Sandbox Code Playgroud)
我想连接t1 + t2 + t3,这样的字符串是否有固定的输出,或者结果依赖于不同的Javascript引擎?
考虑
public String toString()
{
return foo + bar;
}
Run Code Online (Sandbox Code Playgroud)
哪个foo和bar都是该类的字段.
如果foo且bar是或者都是null,那么JLS是否保证(null)为每个字段返回字符串,还是保留了抛出NPE的权利?
可能重复:
在Java中连接空字符串
我只是想知道是否有人可以解释为什么以下代码的工作方式如下:
String a = null;
String b = null;
String c = a + b;
System.out.println(c.toString());
Run Code Online (Sandbox Code Playgroud)
这会将"nullnull"打印到控制台.
我有点期待操作+会抛出异常,或者在较小程度上抛出"c"将为空.
我有splited一个字符串,从收到的字符串我试图形成一个单词一切都很好,但每次我得到null字符串在第一个index为什么?
这是我的代码:
String assetClasses = "Gold:Stocks:Fixed Income:Commodity:Interest Rates";
String[] splits = assetClasses.toString().split(":");
//System.out.println("splits.size: " + splits.length);
String ab = null;
for(int i=0; i<splits.length;i++){
System.out.println(splits[i]);
ab+=splits[i];
}
System.out.println(ab);
Run Code Online (Sandbox Code Playgroud)
输出:
Gold
Stocks
Fixed
Income
Commodity
Interest Rates
nullGoldStocksFixed IncomeCommodityInterest Rates
下面的代码测试字符串 myStr 和 newStr 是否包含相同的值。我期望结果是相等的,但令我惊讶的是,该行String newStr = null似乎导致 newStr 将“null”作为实际文本。它是否正确?
我预计它只是被分配了一个对任何内容的引用,导致此时没有任何价值。
String myStr = "java";
char[] myCharArr = {'j', 'a', 'v', 'a'};
String newStr = null; // not an empty reference but assigning the text "null"?
for (char value : myCharArr) {
newStr = newStr + value;
}
System.out.println(newStr == myStr); // results in false: newStr is 'nulljava' and myStr 'java'
Run Code Online (Sandbox Code Playgroud)
请注意,当更改为时,"String newStr = null"您String newStr = new String()确实会得到一个空引用,并且 newStr 最终将只是“java”。