31-java - 문자열

jin·2022년 7월 30일
0

이하 수업 내용

1. 문자열(String)

String 지금까지 사용한 정수형, 실수형과는 다른 타입으로 단일 문자가 아닌 여러 문자열을 담을 수 있다.
문자열 : 문자의 나열

//문자열은 next() 를 사용한다. 단, 공백은 인식못한다.
System.out.print("이름을 입력하세요 : ");
Scanner sc = new Scanner(System.in);
// 							메서드 (= 함수)
String name = sc.next();
System.out.println("name = " + name);
sc.close();

String은 배열과 같은 구조이기 때문에 값이 같은 두 변수를 비교하면 주소값이 다르다

Scanner sc = new Scanner(System.in);

String name = "홍길동";

System.out.print("이름을 입력하세요 : ");
String myName = sc.next();

if (name == myName) {
	System.out.println("== 연산자 : 일치");
} else {
	System.out.println("== 연산자 : 불일치");
}

if ( name.equals(myName) ) {
	System.out.println("equals() 메서드 : 일치");
} else {
	System.out.println("equals() 메서드 : 불일치");
}

2. String 메소드들

수업에서 나온 메소드들만 정리

문자들은 기본적으로 숫자를 가지고있다.
compareTo 는 빼기 를 뜻한다.
만약에 "a" 가 숫자 10이라면 "b" 는 11이다.
a에서 b를 뺀다면 ==> 음수가 나올것이다.

// 문자 A - 문자 B
// 1) 음수
// 2) 0
// 3) 양수

int rs1 = str1.compareTo(str2);
System.out.println(rs1); // 음수 - str1이 비교값에 비해 앞글자

int rs2 = str2.compareTo(str1);
System.out.println(rs2); //양수 - str2가 비교값에 비해 뒷글자 

int rs3 = str1.compareTo(str3);
System.out.println(rs3); // 0

System.out.println("-----------------------------------");

String str11= "가";
String str22= "나";
String str33= "가";

// 문자 A - 문자 B
// 1) 음수
// 2) 0
// 3) 양수

int rs11 = str1.compareTo(str22);
System.out.println(rs11); // 음수 - str11이 비교값에 비해 앞글자

int rs22 = str22.compareTo(str11);
System.out.println(rs22); //양수 - str22가 비교값에 비해 뒷글자 

int rs33 = str11.compareTo(str33);
System.out.println(rs33); // 0

[1] 문자의 길이 : length()
[2] 문자 한개 추출(인덱싱) : charAt(index)
[3] 문자 여러개 추출(슬라이싱)
1) substring(min , max-1) ==> 범위
2) substring(min) ==> 끝까지

[4] 구분자로 잘라내 배열에 담기
String str = "hello,java,android";
String[] ar = str.split(",");
ar[0] = hello
ar[1] = java
ar[2] = android

//				 012345
String str = "megait";
System.out.println(str);
System.out.println("=============");
// [1] 문자의 길이 : length()
int size = str.length();
System.out.println(size); // 6
System.out.println("=============");

// [2] 문자 한개 추출(인덱싱) : charAt(index)
char ch = str.charAt(0); // 첫번째 글자
System.out.println(ch); // m
ch = str.charAt(size-1); // 마지막 글자
System.out.println(ch); // t
System.out.println("=============");

// [3] 문자 여러개 추출(슬라이싱)
// 1) substring(index1, index2)
// 마지막은 포함하지 않는다. (index1부터 index2 미만까지)
String rs = str.substring(4, 6);
System.out.println(rs); // it
// 2)substring(index)
// index부터 문자열 끝까지
rs = str.substring(4);
System.out.println(rs); // it
System.out.println("=============");

// [4] split (구분자)
// 구분자로 잘라내서 배열에 담기
str = "hello,java,android";
String[] ar = str.split(",");
System.out.println(ar.length); // 3
System.out.println(ar[0]); // hello
System.out.println(ar[1]); // java
System.out.println(ar[2]); // android
System.out.println("=============");

// [5] trim
// 공백 문자열을 제거한 문자열을 출력
String s1 = " \t Hello World  ";
System.out.println(s1.trim()); // 앞뒤는 제거되지만 가운데는 제거가 안된다
System.out.println("=============");

// [6] replaceAll 교체
// s2 문자열의 "Hello"를 "A"로 변경
String s2 =  "HelloHelloHello";
System.out.println( s2.replaceAll("Hello", "A") );

String s3 = " Hello Hello Hello ";
// s3 문자열의 공백 문자 제거
System.out.println( s3.replace(" ", "") );

0개의 댓글