메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

뇌를 자극하는 java 프로그래밍

뇌를 자극하는 java 프로그래밍 질의응답 게시판입니다.

안녕하세요 질문있습니다

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 타입으로 변해서

대입에 문제가 있는건지.. 이게맞는거같은데 너무 헷갈려요





답변감사합니다 추석잘 보내세요..
댓글 입력
자료실