String 라이브러리에 있는 여러 명령문을 코드짜보았다.
package string;
public class Main01 {
public static void main(String[] args) {
String str1 = "자바 Programming";
String str2 = new String("Java"); //String도 하나의 객체선언
System.out.println(str1);
System.out.println(str2);
// 문자열의 길이 조회
int str1_len = str1.length();
int str2_len = str2.length();
System.out.println("str1_len" + str1_len);
System.out.println("str2_len" + str2.length()); // 선언없이 그냥해도ok
System.out.println("-------------------------");
// 특정 문자열이 처음으로 나타나는 위치를 조회
int str1_pos = str1.indexOf(" ");
int str2_pos = str2.indexOf("a");
System.out.println("str1_pos : " + str1_pos);
System.out.println("str2_pos : " + str2_pos);
System.out.println("--------------------------");
// 특정 문자열이 나타나는 마지막 위치를 조회
int str1_last_pos = str1.lastIndexOf(" ");
int str2_last_pos = str2.lastIndexOf("a");
System.out.println("str1_last_pos : " + str1_last_pos);
System.out.println("str2_last_pos : " + str2_last_pos);
System.out.println("--------------------------");
// A를 B로 변경하기
String new_str1 = str1.replace(" ","-");
String new_str2 = str2.replace("a","A");
System.out.println("new_str1 : " + new_str1);
System.out.println("new_str2 : " + new_str2);
// 대소문자 변경하기
System.out.println("--------------------------");
String upper = new_str2.toUpperCase();
String lower = new_str2.toLowerCase();
System.out.println("upper : "+upper);
System.out.println("lower : "+lower);
// 문자열앞뒤 공백 제거
System.out.println("--------------------------");
String input = " enjoy java programming ";
String output = input.trim();
String output2 = input.replace(" " , ""); // 공백을 아예 없애기
System.out.println("input : "+input); //문자열 앞의 공백 제거
System.out.println("output : "+output);
System.out.println("output2 : "+output2);
System.out.println("--------------------------");
// 문자열 비교하기
boolean isSam = str1.equals(str2);
if(isSam) {
System.out.println("같다");
}
else {
System.out.println("다르다");
}
System.out.println("--------------------------");
// 문자열 자르기 .substring(처음 파라미터,두번째 파라미터)
// 첫번째 파라미터 : 시작 위치
// 두번째 파라미터 : 끝 위치
String sub_str1 = str1.substring(0 ,2);
System.out.println("str1 : " + str1);
System.out.println("sub_str1 : " + sub_str1);
// 띄어쓰기까지 안되어 있는데, 0에서 2전, 즉 0~1까지만 호출한다는걸 알 수 있다
// 두 번째 파라미터가 없는 경우 끝까지 자른다.
String sub_str2 = str1.substring(3); // 3부터 끝까지 호출
System.out.println("sub_str2 : " + sub_str2);
System.out.println("--------------------------");
// 형식에 따른 문자열 출력을 위한 static 메서드 사용
/*
* - %d : 정수
* - %s : 문자
* - %f : float형 소수
* - %3d : 숫자를 3자리로 맞춰서 출력. 자릿수가 맞지 않으면, 앞에 공백 출력
* - %03d : 자릿수가 맞지 않으면 0을 출력
* - %3s : 문자열을 3자리로 맞춰서 출력, 자릿수가 맞지 않으면, 앞에 공백 출력
* (%03s와 같은 형식은 사용이 불가)
*/
int yy = 2023;
int mm = 3;
int dd = 14;
String gender = "남자";
String result = String.format("%d년 %02d월 %02d일 %s", yy, mm, dd, gender);
System.out.println(result);
System.out.println("--------------------------");
// 주어진 글자를 기준으로 잘라내어서 배열로 변환
String src = "C++/Java/C#/JavaScript/VB";
String[] data = src.split("/"); // '/'를 기준으로 잘라서 배열에 저장
for(int i = 0; i < data.length; i++) {
System.out.println(data[i]);
}
System.out.println("--------------------------");
}
}
boolean Java.util.regex.Pattern.matches(String arg0,CharSequence arg1)
- 소스코드의 구문 오류로 인하여 컴파일이 불가능한 상태
- 이클립스에서 빨간색으로 표시되는 경우에 해당한다.
- 프로그램을 실행하기 전에 발견되므로 상대적으로 고치기 쉽다.
- 구문상의 에러는 없지만, 프로그램이 실행되는 과정에서 다양한
경우의 수에 대응하지 못하여발생하는 예외 상황.
- 런타임에러가 발생하면 프로그램은 강제 종료한다.
- 우리가 프로그램의 에러라고 부르는 현상은 대부분 런타임 에러에
해당된다.
런타임 에러에는 프로그램 자체의 구조적인 문제로 인한 논리적 오류와 자바 가상 머신 자체의 문제로 인한 오류, 그리고 예외가 있다.
java에서는 try ~ catch ~ fianlly 구문을 통해 프로그래머가 예외 상황에 대응할 수 있도록 하고 있다.
try{
// 기본적으로 실행되는 부분
} catch( 예외클래스이름 객체이름){
// try블록에서 예외가 발생한 경우 이 곳으로 제어가 넘어온다.
} finally{
// 예외 상황은 발생 여부와 상관 없이 무조건 실행되는 부분
// finally 블록은 생략 가능하다.
}
try 블록 실행 도중 catch에서 명시한 예외 클래스에 해당하는 런타임 에러가 발생하면, try 블록을 즉시 중단하고 catch 블록이 실행된 후, finally블록이 실행된다.
예외가 발생하지 않을 경우에는 try블록 종료 후 fianlly 블록이 실행된다.