안녕하세요 질문있습니다
2014-09-04
|
by 자바게이
1163
안녕하세요
질문 1.
String str1="nice";
StringBuilder str2=new StringBuilder(str1);
System.out.println(str2.reverse().toString()); // 1
System.out.println(str2.reverse()); // 2
1번의 경우에는 toString으로 인해서 문자열이 제대로 출력되지만
2번에서 출력되는 값들은 실제로 그냥 문자들이 출력 된거라고 보는게 맞나요?
질문2.
class s
{
public static void main(String[] args)
{
String str1="indeed";
StringBuilder str2=new StringBuilder(str1);
System.out.println(str2.reverse().toString());
System.out.println(str2.reverse());
str2.reverse();
str1=str2.toString();
System.out.println(str2);
// str2="gooooo"; 오류 // 1
str1="111111-2222222"; // 2
StringBuilder str4=new StringBuilder("gugu");
StringBuilder str3=new StringBuilder(str1);
str3.deleteCharAt(6);
System.out.println(str3);
}
}
위에서 주석처리 된 부분 2번 str1="111111-2222222"; 은 되는데
str2="gooooo"; 가 오류가 나는 이유에 대해서 질문있습니다
처음 인스턴스를 생성하는 부분
String str1="indeed";
StringBuilder str2=new StringBuilder(str1);
str1의 경우 인스턴스의 생성자가 없는데
str2의 경우 생성자가 있어요
생성자때문에 오류가 나는건지
아니면 그냥 문자열을 레퍼런스를 바로 대입받을 수 있는 클래스는 String클래스만 잇는건지 궁금합니다
또 아니면
str2="gooooo" 에서
str2는 StringBuilder 타입인데 "goooo"같은경우에는 자동으로 String 타입으로 변해서
대입에 문제가 있는건지.. 이게맞는거같은데 너무 헷갈려요
답변감사합니다 추석잘 보내세요..