20/10/26

아라·2020년 10월 26일
0

국비교육

목록 보기
11/30

비즈니스 코드(업무코드)

프로그램이 하려고 했던 주된 업무를 구현한 코드

예외 처리 코드

제대로 된 사용법을 지키지 않아 발생한 오류를 처리하기 위한 코드

charAt(int index) - char 반환

원하는 위치의 문자를 추출하는 메서드. 추출 메서드.

String statement="안녕하세요. 홍길동입니다.";
System.out.println(statement.charAt(7); // 결과는 '홍'

// 마지막 글자를 추출하고 싶다면
System.out.println(statement.charAt(statement.length()-1));

문자열이 영어대소문자로만 구성되어 있는지 확인

문자열이 영소문자로만 구성되어 있는지 확인하려면 string을 character로 쪼개서 문자코드 값으로 확인해야 한다.

boolean onlyAlphabet=false;
for (int i=0;i<name.length();i++) {
	if ((name.charAt(i)>=65 && name.charAt(i)<=90)||(name.charAt(i)>=97 && name.charAt(i)<=122)) {
		onlyAlphabet=true;
		break;
	}
}
System.out.println(onlyAlphabet?"영어대소문자로 구성되어있습니다.":"영어대소문자 이외의 문자가 있습니다.");

회원가입 이름 입력

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// 유효성 검사. 회원 가입
// - 이름 입력 -> 최소 2자~5자 이내만
boolean result=true;
String name=reader.readLine();
if (name.length()<2 || name.length()>5) {
	System.out.println("이름은 2자에서 5자 이내로 입력하세요.");
}else {
	for (int i=0;i<name.length();i++) {
		if (name.charAt(i)<'가' || name.charAt(i)>'힣') {
			System.out.println("이름은 한글로만 입력하세요.");
			result=false;
			break;
		} else {
			result=true;
		}
}
if (result) {
	System.out.println("회원 가입 진행..");
}else {
	System.out.println("유효하지 않은 이름 > 재입력");
	}
}

trim() - string 반환

공백 제거 메소드. 문자열의 좌우 끝에 있는 공백문자(스페이스, 탭, 개행)를 제거한다. 사용자는 문자열의 좌우 공백을 인식하기 힘들기 때문에 편의성을 높이기 위해서 개발자가 좌우 공백을 제거하는 경우가 많은데, 이럴 경우에 사용한다.

String txt="     하나		둘	셋";
System.out.printf("[%s]\n", txt.trim()); // "[하나		둘	셋]"로 출력됨

indexOf - int 반환

어떤 문자열 내에 찾는 문자가 있는지 확인하려면 if (문자열.indexOf(찾는 문자)>-1{} 이런 식으로 해주면 된다.

String txt="안녕하세요. 홍길동입니다.";
int index=txt.indexOf('홍');
System.out.println(index); // 7 출력

String txt="안녕하세요. 홍길동입니다.";
int index=txt.indexOf("하세요");
System.out.println(index); // "하세요"에서 '하'가 시작되는 2 출력

String txt="안녕하세요. 홍길동입니다.";
int index=txt.indexOf("아무개");
System.out.println(index); // 존재하지 않기 때문에 -1 출력

메서드는 대부분은 서로 상호배타적이다. 다른 메서드가 한 일의 경과를 본인의 일과 연관짓지 않는다. 그렇기 때문에 검색어가 여러개 발견되도 무조건 첫번째 검색어의 위치를 반환한다.
첫번째 외의 검색어의 위치를 반환하고 싶으면 아래와 같이 코드를 작성하면 된다.

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String txt="안녕하세요. 홍길동님. 반갑습니다. 홍길동님. 잘가세요. 길동님.";
int index=txt.indexOf("홍길동");
System.out.println(index); // 7 출력

index=txt.indexOf("홍길동", index+"홍길동".length()); // 위에서 찾은 index에 "홍길동" 길이를 더해준다.
System.out.println(index); // 20 출력

전체 string에서 문자 다 찾는 경우는 아래와 같이 코드를 작성하면 된다.

String txt="안녕하세요. 홍길동님. 반갑습니다. 홍길동님. 잘가세요. 홍길동님. 홍길동. 홍길동.";
int index=-1;
while(true) {
	index=txt.indexOf("홍길동", index);
	if (index==-1) {
		break;
	}
	System.out.printf("%d번째 발견\n", index);
	index+="홍길동".length();
			
}

lastIndexOf

사용법은 indexOf와 같다. 단, indexOf와는 반대로 찾는 방향이 우에서 좌이다.

영어 대소문자 변경 toUpperCase(), toLowerCase() - string 반환

startsWith(), endsWith() - boolean 반환

substring(int begin, int end) - string 반환

replace(String old, String new) - string 반환

문자열의 일부를 교체하는 메서드. 찾고자 하는 문자열을 전부 바꿔준다.

메서드 체인

아래와 같은 식으로 메서드들이 . 으로 이루어져있는 것을 메서드체인이라고 한다.

content.replace(" ", "").indexOf(word.replace(" ", ""))

형식문자열 format

우리가 사용하고 있는 printf의 형식문자열의 단점은 콘솔에서만 적용이 가능하다는 것이다. 좀 더 다양한 플랫폼에서 형식문자열을 이용하기 위해서는 format을 이용한다.

String name="홍길동";
String result=String.format("이름 : %s님", name);
// 결과는 "이름 : 홍길동님"으로 출력된다. result 자체가 "이름 : 홍길동님"인 것.

0개의 댓글