use*_*946 -3 java string substring
我在使用这个substring()时遇到错误.我试图得到第一个,中间和最后的首字母,然后转换为大写.
public String initials() {
String initials = first.substring(0, 1) + middle.substring(0, 1)
+ last.substring(0, 1);
return initials.toUpperCase();
}
Run Code Online (Sandbox Code Playgroud)
那是代码,这是它给我的输出..
Exception in thread "main" java.lang.NullPointerException
null, null null at name.Name.initials(Name.java:75)
at name.NameDriver.main(NameDriver.java:30)
Java Result: 1
Run Code Online (Sandbox Code Playgroud)
第75行是
String initials = first.substring(0, 1) + middle.substring(0, 1)
Run Code Online (Sandbox Code Playgroud)
NameDriver中的第30行是
System.out.print(name1.initials());
Run Code Online (Sandbox Code Playgroud)
这个错误是无关的substring方法,似乎是因为first,middle和last为空,只能在一个串上执行此方法.
阻止此错误发生的最简单方法是在initials方法的开头添加类似的内容:
if(first == null || middle == null || last == null) return "Not all names have been entered";
但是,您可能还需要考虑并非每个人都有中间名.