묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨김영한의 실전 자바 - 중급 1편
String클래스 리터럴 방식 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. String 선언시 리터럴 방식으로하면 String Pool에 해당 문자열이 있는지 확인하고, 있다면 해당 문자열의 참조값을 사용하는 것으로 알고 있는데요. 반면 new 연산자를 이용하는 방식은 String Pool 을 거치지 않고 항상 새로운 String 객체를 생성하는걸로 알고있습니다. PDF 파일 2페이지에 이런 내용이 있는데요.편의상 쌍따옴표로 문자열을 감싸면 자바 언어에서 new Stirng("hello")와 같이 변경해준다. 리터럴 방식도 new 연산자를 이용하는 방식으로 자바가 변경해주는거라면 Heap 영역에 항상 새로운 String 객체를 생성하게 되는게 아닌지 궁금합니다.감사합니다. 😃
-
미해결김영한의 실전 자바 - 중급 1편
선생님 String클래스 관련하여 질문드립니다.
선생님 String 변환 메서드들 관련해서 출력시 의문점이 생겨 질문 드립니다.System.out.println("문자열 결합: " + str.concat("!!!!"));String은 불변 객체로 반환값을 담아야 한다고 말씀하셨던거 같은데 print출력할때는 그게 상관이없나요?
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
퀴즈#6에서 쓰인 substring 메소드의 작동 원리?
안녕하세요, 선생님. 다름이 아니라 제가 퀴즈#6을 풀면서, substring의 작동원리에 대해서 궁금한 것이 생겨 이렇게 질문을 남깁니다...ㅎ public static String getHiddenData(String data, int index) { String hiddenData = data.substring(0, index); // for (i = index; i < data.length(); i++) { ... } for (int i = 0; i < data.length() - index; i++;) { hiddenData += "*"; } return hiddenData; }public static String getHiddenData(String data, int index) {...}; 메소드에서, 처음 저장 될 데이터 hiddenData 에서 우선 대입 연산자 =를 통해 data.substring(0, index);를 저장하고, String으로 저장된 문자열을 0번째 인덱스부터 index 직전 자리까지 정상적으로 문자열을 main 메소드를 통해 출력을 한 다음, for문을 통해서 index 이후 자리부터는 일반적인 문자열 대신 별표(*)로 덮어쓰고 출력하는 걸로 이해했는데, 제가 올바르게 이해 한 걸까요?...ㅎ이전에 같은 substring 개념을 이용한 퀴즈#3은 문제를 다시 풀었을 땐 별 무리가 없었는데, 막상 퀴즈#6에서는 메소드의 작동 원리가 눈에 잘 안 들어오네요...ㅎ 참, 제가 질문 글들을 올릴 때 마다 항상 좋은 답변은 감사합니다...ㅎ 덕분에 어려운 프로그래밍 공부를 나도코딩 선생님 덕에 잘 헤쳐나가고 있습니다...ㅎ
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
문자열 병합(String concatenation)에 관한 간단한 질문
안녕하세요 선생님, 다름이 아니라 제가 지난 String[], String, charAt, length와 관련된 질문 이후로 문자열(String)을 계속 공부하면서 막히는 것이 조금 있어 이렇게 질문을 남깁니다.아래 코드에서 제가 간단하게 System.out.println(); 명령문으로 아래 문장들을 출력해봤습니다:결과 (1)에서는 "Hello, "와 "World!" 2개의 단어가 합쳐져서 문장 Hello, World!가 출력이 되고, 결과 (2)에서는 Route 12가 아닌, Route 66으로, 결과 (3)에서는 25 years old 이라고 출력이 되는데, 이렇게 되는 이유가 System.out.println(); 명령문의 괄호 안에 쓰여진 문장들이 기본적으로 String으로 간주하여 결과를 출력하고, 만일 숫자가 먼저 온다면 int로 인지해서 결과를 먼저 받은 다음, + 기호를 통해 문자열을 출력해서 그런 건가요? 혹여나 시간이 되신다면, 선생님으로부터 답변을 받았으면 좋겠습니다! 지난 번 QNA가 너무 좋아서 아직도 기억에 남네요..ㅎ 미리 감사합니다 :)
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
String 문자열, String[] 배열에서의 .length, .length(), .charAt() 쓰임의 차이점을 알고 싶습니다 :)
안녕하세요, 다름이 아니라 제가 나도코딩 자바(Java) 기본편을 공부하면서, 배열(Array)에 관해 모르는 것이 생겨서 이렇게 질문을 남깁니다.일반적으로 배열이 String[] array = {...}; 이렇게 선언 되었을 때, array.length를 이용해서 배열의 길이를 파악하고, array[0] 처럼 이렇게 인덱스로 값의 위치를 파악하면서 데이터를 읽는다고 알고 있습니다. 반면에 String sentence = "sentence"; 이런 경우에는 같은 length를 쓰지만 String 클래스의 메소드라서 괄호를 나타낸 sentence.length()로 길이를 파악하고, "..."; 안 문장의 각 글자 별 위치를 파악할 때는 sentence.charAt()을 쓴다고 알고 있습니다. 제가 이해한 부분이 혹시 맞을까요?또한 아래처럼 선언된 String[] 배열에서:String[] Java = { "나는 자바가 좋아요" };Java 배열의 전체 길이를 파악하고 싶다면, Java.length 으로 적는데, 만약 배열 안 문장 "나는 자바가 좋아요" 의 전체 길이를 알고 싶다면 Java[].length()으로 적고, 배열 안에 들어있는 문장 "나는 자바가 좋아요" 에서 각 낱말의 위치를 파악하고 싶다면, Java[].charAt()를 적으면 되는 건가요? 여기서 Java[].부분에는 배열 index를 적고 (예를 들면 Java[0]), charAt()은 "..." 문장의 각 글자 별 인덱스를 적는 방식으로요.질문이 조금 많이 길었습니다. 하지만 동시에 그 만큼 제가 또한 열심히 배우고 싶다는 열정으로 봐주셨으면 합니다! 게다가 앞으로 다가올 기말시험에서도 배열의 비중이 꽤 크기도 해서, 정말로 잘 배우고 싶습니다! (해외에서 대학을 다니는 지라 지금 이맘때 쯤이 시험기간입니다 ㅠㅠ)참 얼마 전에, 자바로 소켓 프로그래밍으로 과제를 해야 했었던 일이 있었는데, 그 때 나도코딩님이 업로드 해주신 섹션 12. (Section 12.) 예외 처리 부분이 상당히 많이 도움 되었습니다.덕분에 과제에서 나쁘지 않은 점수를 받았습니다. 앞으로도 좋은 강의 잘 부탁하고, 진심으로 감사합니다 :-)
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
문자열
안녕하세요, C# 완강 후 C++ 강의도 잘 듣고 있습니다! C++을 하면서 C#은 다 까먹었지만요... ^^;; 아무튼, 아직 강의를 전부다 듣진 않았지만.. 문자열 구현하는 것에 대해서 C스타일 배열로만 알려주셨는데 다른 책들을 참고하면 C스타일 배열 대신 string을 쓰라고 하더라구요 . 프로그래머스 같은 데서 코딩테스트 할 때도 string을 사용하도록 되어있던데 C++의 string 대신 C스타일 배열로 설명해주신 이유가 있는지? 궁금합니다. 감사합니다!!