하나의 게시글로 올리기엔 짜잘하지만
공부 필요한 것들 !
1) 로컬 변수
~ 메서드 내부에 선언된 변수 + if문, for문 내에서 선언된 변수
~ for문의 소괄호 내에서 제어되는 변수 또한 로컬변수
~ 메서드 파라미터 내 변수
~ 선언된 위치부터 소속된 괄호가 끝낼 때까지만 존재한다.
~ 반드시 초기화 후 사용한다
2) 멤버 변수
~ 클래스 내부 및 메서드 외부에 존재하는 변수
~ 클래스 내의 생성자나 메서드에서 접근 가능
~ 초기화하지 않을 경우, 기본값으로 자동 초기화된다
~ 종류로는 인스턴스 멤버 변수와 클래스 멤버 변수가 존재한다
2-1) 인스턴스 멤버 변수
~ 접근제한자 뒤에 아무것도 붙지 않은 변수
~ 인스턴스가 생성될 때마다 각 공간이 새로 할당되므로 인스턴스가 다르면 인스턴스 멤버변수가 다르다
~ 인스턴스가 생성되면 메모리에 로딩되고 인스턴스 제거 시 메모리에서 제거된다.
2-2) 클래스 (정적) 멤버 변수
~ static 키워드가 붙은 변수
1) public
: 모든 클래스에서 접근 가능 (제한 없음)
2) protected
: 같은 패키지 또는 다른 패키지더라도 상속 관계에 있는 서브클래스만 접근 가능
3) default
: 같은 패키지에서만 가능
4) private
: 자신의 클래스에서만 접근 가능
~ 리터럴로 생성했을 때 문자열이 중복되는 경우, 가리키는 주소값은 같다. --> 문자를 비교하고 싶으면 equals() 사용
사용 문자열
String s1 = "Hello World";
String s2 = " Person !";
String s3 = "집/가고/싶다";
System.out.println()은 생략하겠습니다
1) 길이
s1.length(); // 결과 11
2) 비교
// 대소문자까지 비교
s1.equals("HELLO WORLD"); // 결과 false -> 대소문자 구분한다
// 대소문자 구분 무시하고 비교
s1.equalsIgnoreCase("HELLO WORLD");
3) 추출
// 세번째 문자 추출
s1.charAt(3); // 결과 l
// 문자열 추출
s1.substring(6) // 결과 World
s1.substring(6,9) // 결과 Wor --> 6포함 9포함 x
4) 결합
s1.concat("!"); // 결과 Hello World!
5) 검색
s1.indexOf('e'); // 결과 2
s1.indexOf("World"); // 결과 6 --> 시작지점 리턴
6) 치환
s1.replace('l', '*'); // 결과 He**o Wor*d
7) 대소문자 및 소문자로 변경
s1.toUpperCase(); // 대문자로 변경
s1.toLowerCase(); // 소문자로 변경
8) 공백 제거 (문자열 앞뒤 공백만 제거된다)
s2.trim();
9) 문자 나누기
String [] sub = s3.split("/");
for (String str : sub) {
System.out.println(str);
}
/*
< 결과 >
집
가고
싶다
*/
10) 포함 여부
s1.contatins("안녕"); // 결과 false
예시
문제
str = "주소:부산 해운대구 세실로69번길 5 연하남, 층수: 1층, 번호: 010-2222-1111";
위의 문장에서 중요한 부분만 추출하시오
코드
String str = "주소:부산 해운대구 세실로69번길 5 연하남, 층수: 1층, 번호: 010-2222-1111";
str.split(":")
for (String sArr : str.split(",")) {
System.out.println(sArr.split(":")[1].trim());
}
방법 1
Random r = new Random(); // 객체 생성
int num; // 난수 저장할 변수 선언
num = r.nextInt(10); // 0~9 난수 발생
방법2
Math.random() // 0.0 <= x <= 1.0
Math.random() * 10 // 0.0 <= x <= 10.0