Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바의 정석 기초편 ch1
- 스프링 mvc1 - 서블릿
- jpa 활용2 - api 개발 고급
- 자바의 정석 기초편 ch11
- 스프링 mvc1 - 스프링 mvc
- @Aspect
- 코드로 시작하는 자바 첫걸음
- 스프링 db2 - 데이터 접근 기술
- 타임리프 - 기본기능
- 자바의 정석 기초편 ch8
- 자바의 정석 기초편 ch2
- 2024 정보처리기사 수제비 실기
- 스프링 mvc2 - 검증
- 게시글 목록 api
- 자바의 정석 기초편 ch9
- 자바의 정석 기초편 ch14
- 자바의 정석 기초편 ch12
- 자바의 정석 기초편 ch13
- 스프링 고급 - 스프링 aop
- 스프링 mvc2 - 로그인 처리
- 자바의 정석 기초편 ch5
- 2024 정보처리기사 시나공 필기
- 자바의 정석 기초편 ch6
- 자바의 정석 기초편 ch3
- 자바의 정석 기초편 ch4
- 스프링 입문(무료)
- 스프링 db1 - 스프링과 문제 해결
- 스프링 mvc2 - 타임리프
- 자바의 정석 기초편 ch7
- jpa - 객체지향 쿼리 언어
Archives
- Today
- Total
나구리의 개발공부기록
자바의 정석 기초편 ch5 - 12 ~ 17 [String배열, String클래스, 커맨드라인 입력받기] 본문
유튜브 공부/JAVA의 정석 기초편(유튜브)
자바의 정석 기초편 ch5 - 12 ~ 17 [String배열, String클래스, 커맨드라인 입력받기]
소소한나구리 2023. 11. 13. 14:101) String 배열
- 여러개의 문자열을 담을 수 있는 배열
(1) String 배열 초기화 방법
String[] name = new String[3];
// 저장방법1
name[0] = "Kim";
name[1] = "Park";
name[2] = "Yi";
// 저장방법 2
String[] name = {"Kim", "Park", "Yi"};
(2) 실습
- 랜덤 가위바위보 코드
import java.util.Arrays;
public class ex5_String {
public static void main(String[] args) {
// index: 0 ~ 2
String[] strArr = {"가위", "바위", "보"};
System.out.println(Arrays.toString(strArr));
int i = 0;
for(; i<10; i++) {
int tmp = (int)(Math.random()*3); // 0 ~ 2 까지 랜덤 범위
System.out.println(strArr[tmp]);
}
}
}
2) String 클래스
(1) String 클래스 특징
- 문자타입 배열(char[])과 메서드(기능)를 결합한 것
- String 객체가 생성된 이후에는 객체의 내용을 변경할 수 없음 (읽기만 가능) -> String 클래스의 불변성(immutability)
- String 타입 변수 a에 "a"를 저장하고 b에 "b"를 저장하여 a + b로 변수를 연산하여 a에 저장하면 a의 기존 값인 "a" 가 "ab"로 변경되는게 아니라 "ab"라는 새로운 문자열이 a의 참조변수에 저장되어 출력되는 것임
String a = "a";
String b = "b";
a = a + b; // 문자열 a 와 b가 결합되어 a에 "ab"를 저장시킨다
print(a) // "ab" 출력
// 기존에 저장 되었던 a가 바뀌는 것이 아님
// "ab"라는 새로운 문자열이 새로운 참조변수에 저장되어 출력
// 9장에서 상세하게 배움
(2) String클래스의 주요 메서드
- charAt(int index) : 문자열에서 해당 위치(index)에 있는 문자를 char 타입으로 반환
- length() : 문자열의 길이를 int타입으로 반환
String str = "ABCDE";
char ch = str.charAt(3); // 문자열 str의 4번째 문자(인덱스 3번의 문자) 'D'를 ch에 저장
str.length() // 출력결과 5
- substring(int from, int to) : 문자열에서 해당 범위(from ~ to)의 문자열을 반환하고 to는 포함 되지 않으며 to를 생략하면 끝까지 출력
String str = "012345"
String tmp = str.substring(1,4); // str에서 index값 1~4의 문자들을 반환(4는 포함 안됨)
System.our.println(tmp); // "123"출력
- equals(Object obj) : 문자열의 내용이 같은지 확인, 같으면 true 다르면 false
- toCharArray() : 문자열을 문자배열(char[])로 변환해서 반환
(3) 실습
import java.util.Arrays;
public class ex5_StringClass {
public static void main(String[] args) {
// index번호 01234
String str = "ABCDE";
// ()사이에 index 번호를 적으면 해당 문자 반환
char ch = str.charAt(2);
// from ~ to(to는 포함 안됨), from 부터 to앞의 인덱스번호까지 출력
// index 번호 1 ~ 3까지의 문자를 반환 (4는미포함)
String str2 = str.substring(1,4);
// from, from부터 끝까지 출력
// str.substring(1, str.length())와 의미가 같음
String str3 = str.substring(1);
System.out.println(ch);
System.out.println(str2);
System.out.println(str3);
System.out.println(str.length()); // 문자열의 길이 반환
}
}
출력값
C
BCD
BCDE
5
3) 커맨드라인 입력받기
- JVM이 윈도우의 cmd, mac의 터미널, IDE의 Arguments에 입력한 값들을 main 메소드의 매개변수args에 문자열 배열로 전달하여 커맨드라인으로 입력한 값들을 프로그램에서 사용가능
- 아무 값도 주지 않을 경우 길이가 0인 배열이 됨(null이 아님)
public class ex5_7 {
public static void main(String[] args) {
System.out.println("매개변수의 개수:"+args.length);
for(int i=0; i<args.length; i++) {
System.out.println("args["+i+"] = \""+args[i]+"\"");
}
}
}
(1) 터미널에서의 실행 - mac
- 스페이스바로 문자열 구분 -> abc 123 "Hello World" 이렇게 입력하면 "abc" "123" "Hello World" 이렇게 문자열이 3개 생성됨
- ""로 여러 단어를 1개의 문자열로 구성가능("Hello World" -> Hello World의 두개의 단어를 "" 묶어서 1개의 문자열로 설정)
- 이클립스는 alt+엔터를 치면 java 파일의 경로가 나오고 인텔리제이는 main메서드가있는 클래스를 오른쪽 버튼을 누르면 java 파일의 경로를 복사할 수 있음
- 위에서 확인한 경로에서 상위 폴더로 올라가면 이클립스의 경우 bin, 인텔리제이의 경우 out 디렉토리를 확인할 수 있는데, 해당 디렉토리로 쭉 들어가면 생성한 클래스의 이름으로 class 파일이 존재함
- 해당 파일의 경로를 복사하여 터미널에서 cd + 복사한 경로를 붙혀넣기 하면 해당 위치로 이동되며 이동된 위치에서 ls 명령어를 검색하면 해당 위치의 파일을 볼 수 있음
- 명령어를 입력하여 해당 클래스 파일을 실행, java Main(class 파일 이름) 입력할 값들
- 만약 class 파일의 위치가 아닌 bin이나 out의 위치에서 class 파일에접근할 경우 패키지가 있다면 패키지 경로는 ch5.ex5_7 처럼 '.' 으로 구분하면 됨
(2) 이클립스에서의 실행
- Run configurations -> (x)=Arguments탭으로 이동 -> Program argumets 작성 -> run(실행)
** 출처 : 남궁성의 정석코딩_자바의정석
'유튜브 공부 > JAVA의 정석 기초편(유튜브)' 카테고리의 다른 글
자바의 정석 기초편 ch6 - 1 ~ 4[객체지향언어,클래스와 객체] (0) | 2023.11.14 |
---|---|
자바의 정석 기초편 ch5 - 18 ~ 24[2차원 배열, 2차원배열 예제, Arrays로 배열 다루기] (0) | 2023.11.13 |
자바의 정석 기초편 ch5 - 8 ~ 11 [배열의 활용1~4] (2) | 2023.11.09 |
자바의 정석 기초편 ch5 - 6 ~ 7 [배열의 출력] (0) | 2023.11.09 |
자바의 정석 기초편 ch5 - 1 ~ 5 [배열, 배열의 인덱스,배열의길이,배열의초기화] (0) | 2023.11.08 |