728x90
반응형
package wrapperclass10;
import java.util.Scanner;
public class WrapperClass03 {
// 문] 인자로 전달받은 value가 숫자형식이면 true 반환 아니면 false 반환하는 메소드를 만들어라
// 예] "20" -> true, "20A1" -> false
public static boolean isNumber(String value) {
// Character 클래스의 메소드 사용
/*for (int i = 0; i < value.length(); i++) {
// 방법1]
// if(!Character.isDigit(Character.codePointAt(value, 2))) return false;
// 방법2]codePointAt();만 사용
if (!(Character.codePointAt(value, i) >= '0' && Character.codePointAt(value, i) <= '9'))
return false;
}*/
// String 클래스의 메소드 사용
for (int i = 0; i < value.length(); i++) {
if(!(value.codePointAt(i)>='0' && value.codePointAt(i)<='9'))
return false;
}
return true;
}// isNumber
public static void main(String[] args) {
// JDK 1.4이전 버전에서의 코딩 형태
char ch = 'A';
Character chObj = new Character(ch);
char chResult = (char) (chObj.charValue() + 1);
System.out.println("chResult] " + chResult);
// JDK 5.0이후 버전에서의 코딩 형태
// 인스턴스 변수에 직접 데이터 대입 가능]
chObj = 'C'; // 오토박싱 char -> Character 형으로
chResult = chObj; // 오토언박싱 Character -> char 형으로
System.out.println("chObj] " + chObj);
// [Character 클래스의 주요 메소드]
// 1] static int codePointAt (CharSequence seq, int index)
// : 문자열에서 index에 해당하는 위치의 한 문자의 아스키 코드값을 반환한다. (index 는 0부터 시작)
System.out.println(Character.codePointAt("ABCD", 2));
// 2] static boolean isDigit(char ch)
// static boolean isDigit(int codePoint)
// : 어느 한 문자가 숫자인지 아닌지 판단하는 메소드
System.out.println(Character.isDigit('A') ? "숫자다" : "숫자가 아니다");
System.out.println(Character.isDigit('2') ? "숫자다" : "숫자가 아니다");
System.out.println(Character.isDigit(65) ? "숫자다" : "숫자가 아니다");
System.out.println(Character.isDigit('가') ? "숫자다" : "숫자가 아니다");
System.out.println(Character.isDigit(44032) ? "숫자다" : "숫자가 아니다");
/*
* Scanner sc = new Scanner(System.in); System.out.println("나이를 입력하세요"); String
* value = sc.nextLine(); if (isNumber(value))
* System.out.println("당신의 10년 후 나이는 " + (Integer.parseInt(value) + 10)); else
* System.out.println("숫자만 입력해주세요");
*/
// 3] static boolean isLetter(char ch)
// : 문자인지 아닌지(언어(한글,한문,영어,일본어 등)에 해당하는 것만)판단하는 메소드
System.out.println("[isLetter 메소드]");
System.out.println(Character.isLetter('가'));// true
System.out.println(Character.isLetter('A'));// true
System.out.println(Character.isLetter('a'));// true
System.out.println(Character.isLetter('家'));// true
System.out.println(Character.isLetter('9'));// false
System.out.println(Character.isLetter('@'));// false
// 4] static boolean isWhitespace(char ch)
// static boolean isWhitespace(int codePoint)
// : 공백인지 아닌지 판단하는 메소드
System.out.println("[isWhitespace 메소드]");
System.out.println(Character.isWhitespace('가'));// false
System.out.println((int) ' ');// true
System.out.println(Character.isWhitespace(32));// 공백의 아스키 코드값
System.out.println(Character.isWhitespace(' '));// true
String whiteString = " H E L L O";
int whiteCount = 0;
for (int i = 0; i < whiteString.length(); i++) {
if (Character.isWhitespace(Character.codePointAt(whiteString, i)))
whiteCount++;
} // for
System.out.println("총 공백수] " + whiteCount);
// 5] static boolean isLowerCase(char ch)
// static boolean isUpperCase(char ch)
// : 대소문자를 판단하는 메소드(영문자에만 적용) / 알파벳이 아닌 문자에 적용시 모두 false 반환
System.out.println("[isLowerCase/isUpperCase 메소드");
System.out.println(Character.isUpperCase('A'));// true
System.out.println(Character.isUpperCase('a'));// false
System.out.println(Character.isLowerCase('A'));// false
System.out.println(Character.isLowerCase('a'));// true
System.out.println(Character.isUpperCase('가'));// false
System.out.println(Character.isLowerCase('9'));// false
// 문] 아이디를 입력받는데 영문자 소문자와 숫자로만 입력받아야 한다.
// 대문자가 포함되어 있으면 '잘못 입력했습니다'라고 출력하고 제대로된 아이디를 입력 받을때까지 계속 입력 받도록 하여라
// 단, 숫자로 시작해서도 안된다. 숫자로 시작한 아이디를 입력했을때도 '잘못 입력했습니다'라고 출력하세요
System.out.println("[String 클래스의 toCharArray() 메소드]");
String value = "KOSMO";
char[] chArray = value.toCharArray();
System.out.println(chArray[0]);// K
System.out.println(chArray[1]);// O
System.out.println(chArray[2]);// S
// Scanner sc = new Scanner(System.in);
// 다시 확인
/*
* while (true) { System.out.println("아이디를 입력해 주세요"); boolean isCorrect = true;
* String nickname = sc.nextLine(); char[] chnick = nickname.toCharArray(); for
* (int i = 0; i < chnick.length; i++) {// chnick.length = nickname.length() if
* (Character.isDigit(chnick[0]) || !Character.isLowerCase(chnick[i]) &&
* !Character.isDigit(chnick[i])) System.out.println("잘못 입력했습니다"); isCorrect =
* false; break; }// for if(isCorrect) {
* System.out.println("당신의 아이디는] "+nickname); break; }// if }// while
*/
// 6] static char isUpperCase(char ch)
// static char isLowerCase(char ch)
// static int isLowerCase(int code)
// : 대문자를 소문자로, 소문자를 대문자로
System.out.println("[toUpperCase/toLowerCase 메소드]");
System.out.println(Character.toUpperCase('A'));
System.out.println(Character.toUpperCase('a'));
System.out.println(Character.toLowerCase('A'));
System.out.println(Character.toLowerCase('a'));
System.out.println(Character.toUpperCase('가'));
System.out.println(Character.toLowerCase('가'));
System.out.println(Character.toUpperCase('9'));
System.out.println((char) Character.toUpperCase(97));
// 문] 사용자로부터 문자열(영문자)을 입력받아서 대문자는 소문자로, 소문자는 대문자로 변경하여 출력
// 예] Hello -> hELLO
Scanner sc = new Scanner(System.in);
System.out.println("영문자를 입력하세요");
String alphabet = sc.nextLine();
char[] charr = alphabet.toCharArray();
for (int i = 0; i < charr.length; i++) {
if (Character.isLowerCase(charr[i])) {
// 방법1] 직접출력
// System.out.println(Character.toUpperCase(charr[i]));
// 방법2] 대문자로 변경해서 i방에 다시저장
// charr[i] = Character.toUpperCase(charr[i]);
// 방법3] 문자들을 하나씩 String형 변수에 누적
alphabet += Character.toUpperCase(charr[i]);
} // if
else
// 방법1] 직접출력
// System.out.println(Character.toLowerCase(charr[i]));
// 방법2] 소문자로 변경해서 i방에 다시 저장
// charr[i] = Character.toLowerCase(charr[i]);
// 방법3] 문자들을 하나씩 String형 변수에 누적
alphabet += Character.toLowerCase(charr[i]);
} // for
// 방법3]
System.out.println(alphabet);
// 문] 위의 최종 변환된 문자열을 거꾸로 출력하여라
charr = alphabet.toCharArray();
System.out.println("[거꾸로 출력]");
for (int i = charr.length - 1; i >= 0; i--)
System.out.println(charr[i]);
System.out.println();
// 모든 Wrapper 클래스는 기본 자료형을 String형으로 변환해줄 수 있는 아래와 같은 메소드를 공통으로 갖고 있음
// String toString()
// static String toString(기본 자료형 타입)
int num = 100;
// 정적 메소드 사용]
System.out.println(Integer.toString(num));// 100 -> "100"(문자열)
System.out.println("변환된 타입] " + Integer.toString(num).getClass().getName());
// 인스턴스 메소드 사용]
Integer intObj = num;// 오토박싱
System.out.println(intObj.toString());// 100 -> "100"(문자열)
System.out.println("변환된 타입] " + intObj.toString().getClass().getName());
short s = 200;
System.out.println(Short.toString(s) + 200);
Short shtObj = s;
System.out.println(shtObj.toString() + 200);
ch = '가';
System.out.println("정적 메소드] " + Character.toString(ch));// '가' -> "가"
System.out.println("인스턴스형 메소드] " + Character.valueOf(ch));
boolean b = true;
System.out.println("정적 메소드] " + Boolean.toString(b));// true -> "true"
System.out.println("인스턴스형 메소드] " + Boolean.valueOf(b));
// 모든 Wrapper클래스에는 valueOf()계열 메소드를 가지고 있다
// static Wrapper 클래스 valueOf(기본형): 기본형을 참조형으로 (오토박싱 지원으로 의미없음)
// static Wrapper 클래스 valueOf(String): 숫자형식의 문자열을 Wrapper클래스로 (단, 래퍼클래스.parse계열
// 많이 사용)
String stringNumber = "100";// 문자열 "100"을 숫자 100으로 변경
byte by = Byte.parseByte(stringNumber);// "100" -> 100
System.out.println(by + 100);// 200
System.out.println(Short.parseShort(stringNumber) + 100);// 200
System.out.println(Integer.parseInt(stringNumber) + 100);// 200
System.out.println(Integer.valueOf(stringNumber) + 100);// 200
// 문자열 "TrUe"를 논리값 true로
String boolString = "TrUe";
System.out.println(Boolean.parseBoolean(boolString));// "TrUe" -> true
System.out.println(Boolean.parseBoolean(boolString) && false);// "TrUe" -> false
System.out.println(Boolean.valueOf(boolString) && false);// "TrUe" -> false
}// main
}// class
728x90
반응형
'개발 > JAVA' 카테고리의 다른 글
12. JAVA ect 클래스 (Math / Date / Calendar / SimpleDateFormat) (0) | 2020.06.08 |
---|---|
11. JAVA String Basic / String Method / StringBuffer (0) | 2020.06.08 |
09. JAVA 클래스 / 객체 생성 및 사용 / 접근지정자 / 전역, 지역 변수 / static : 네이버 블로그 (0) | 2020.06.08 |
08. JAVA 제어문 - 조건문(IF, SWITCH) / 반복문(FOR, WHILE) / 중첩 (0) | 2020.06.08 |
07. JAVA의 연산자 (Operator) (0) | 2020.06.08 |