2014-03-04 65 views
1

BThis是我的代码:无法使用StringBuilder来连接字符转换为字符串

public static void main(String[] args) 
{ 
    String teacherName = "Benjamin Brown"; 
    int teacherSecondInitialIndex = (teacherName.indexOf(" ") + 1); 
    String teacherInitials = new StringBuilder(teacherName.charAt(0)).append(teacherName.charAt(teacherSecondInitialIndex)).toString(); 
    System.out.println(teacherInitials); 
} 

我想打印出来teacherName的缩写,这将是“BB”。但只有“B”正在打印出来。什么是问题?

+1

为什么它是“BG”而不是“BB”? – AntonH

+0

我不好,你说得对。编辑它。 –

回答

4

constructor

new StringBuilder(teacherName.charAt(0)) 

接受一个int。因此,您所传递的价值正在扩大并用作StringBuilder的容量,而不是底层String中的第一个char

创建一个空的StringBuilder并追加两个字符。

String teacherInitials = new StringBuilder() 
     .append(teacherName.charAt(0)) 
     .append(teacherName.charAt(teacherSecondInitialIndex)) 
     .toString(); 
+0

谢谢!我完全错过了。 –

相关问题