TIL/JAVA
23.05.01
J1-H00N
2023. 5. 1. 20:18
문자열 관련 함수(.length(), .indexOf(), .substring(), ...)
package nadocoding.Chap_03;
public class _01_String1 {
public static void main(String[] args) {
String s = "I like Java and Python and C.";
System.out.println(s);
// 문자열의 길이
System.out.println(s.length()); // 29
// 대소문자 변환
System.out.println(s.toUpperCase()); // I LIKE JAVA AND PYTHON AND C.
System.out.println(s.toLowerCase()); // i like java and python and c.
// 포함 관계
System.out.println(s.contains("Java")); // true
System.out.println(s.contains("C#")); // false
System.out.println(s.indexOf("Java")); // 7
System.out.println(s.indexOf("C#")); // -1
System.out.println(s.indexOf("and")); // 12
System.out.println(s.lastIndexOf("and")); // 23
System.out.println(s.startsWith("I like")); // true
System.out.println(s.endsWith(".")); // true
}
}
package nadocoding.Chap_03;
public class _02_String2 {
public static void main(String[] args) {
String s = "I like Java and Python and C.";
// 문자열 변환
System.out.println(s.replace(" and", ",")); // I like Java, Python, C.
System.out.println(s.substring(7)); // 인덱스 기준 7부터 시작, 이전 내용은 삭제 // Java and Python and C.
System.out.println(s.substring(s.indexOf("Java"))); // Java and Python and C.
System.out.println(s.substring(s.indexOf("Java"), s.indexOf("."))); // Java and Python and C
// 공백 제거
s = " I love Java. ";
System.out.println(s); // I love Java.
System.out.println(s.trim()); // I love Java.
// 문자열 결합
String s1 = "Java";
String s2 = "Python";
System.out.println(s1 + s2); // JavaPython
System.out.println(s1 + ", " + s2); // Java, Python
System.out.println(s1.concat(", ").concat(s2)); // Java, Python
}
}
package nadocoding.Chap_03;
public class _03_StringCompare {
public static void main(String[] args) {
// 문자열 비교
String s1 = "Java";
String s2 = "Python";
System.out.println(s1.equals(s2)); // false
System.out.println(s2.equals("python")); // false
System.out.println(s2.equalsIgnoreCase("python")); // 대소문자 구분 X // true
// 문자열 비교 심화
s1 = "1234"; // 벽에 붙은 메모지의 비밀번호 정보
s2 = "1234"; // s1, s2가 참조함
System.out.println(s1.equals(s2)); // true // 내용을 비교
System.out.println(s1 == s2); // true // 참조를 비교
s1 = new String("1234");
s2 = new String("1234");
System.out.println(s1.equals(s2)); // true // 내용을 비교하면 같으므로 true
System.out.println(s1 == s2); // false // new로 새롭게 메모리를 할당해 만든 변수이기에 참조가 달라서 false
}
}
package nadocoding.Chap_03;
public class _04_escapeSequence {
public static void main(String[] args) {
// 특수문자, 이스케이프 문자 (Escape Sequence, Escape Character, Special Character)
// \n \t \\ \" \'
System.out.println("자바가");
System.out.println("너무");
System.out.println("재밌어요");
// 자바가
// 너무
// 재밌어요
// \n = 줄바꿈
System.out.println("자바가\n너무\n재밌어요");
// 자바가
// 너무
// 재밌어요
// \t = 탭
System.out.println("해물파전\t\t9000원");
System.out.println("김치전\t\t8000원");
System.out.println("부추전\t\t8000원");
// 해물파전 9000원
// 김치전 8000원
// 부추전 8000원
// \\ = \ 출력
System.out.println("C:\\Program Files\\Java");
// C:\Program Files\Java
// \", \' = ", ' 출력하기
System.out.println("단비가 \"냐옹\"이라고 했어요");
// 단비가 "냐옹"이라고 했어요
System.out.println("단비가 \'뭘 봐?\' 라는 표정을 지었어요");
System.out.println("단비가 '뭘 봐?' 라는 표정을 지었어요");
// 단비가 '뭘 봐?' 라는 표정을 지었어요
char c = 'A';
c = '\'';
System.out.println(c); // '
}
}
package nadocoding.Chap_03;
public class _Quiz_03 {
/*
주민등록번호에서 생년월일 및 성별까지만 출력하는 프로그램을 작성하시오.
1. 주민등록번호는 13자리로 구성
2. 앞 6자리는 생년월일 정보, 뒷 7자리 중 첫 번째 숫자는 성별 정보
3. 입력 데이터는 - 을 포함한 14자리의 문자열 형태
ex)
"901231-1234567"인 경우 901231-1 까지만 출력
"030708-4567890"인 경우 030708-4 까지만 출력
*/
public static void main(String[] args) {
String num = "901231-1234567";
System.out.println(num.substring(0,num.indexOf("-")+2));
}
}
조건문
package nadocoding.Chap_04;
public class _01_If {
public static void main(String[] args) {
// 조건문 if
int hour = 15;
// if 문 내에서 하나의 문장을 실행할 때는 {} 생략 가능
// if 문 내에서 두 개 이상의 문장을 실행할 때는 {} 생략 불가능
if (hour < 14) {
System.out.println("아이스 아메리카노 +1");
System.out.println("샷 추가");
}
System.out.println("커피 주문 완료 #1");
hour = 10;
boolean morningCoffee = true;
if (hour < 14 && morningCoffee == false) { // 두 개 이상의 조건 입력 가능
System.out.println("아이스 아메리카노 +1");
}
System.out.println("커피 주문 완료 #2");
hour = 15;
morningCoffee = true;
if (hour >= 14 || morningCoffee) {
System.out.println("아이스 아메리카노(디카페인) +1");
}
System.out.println("커피 주문 완료 #3");
}
}
package nadocoding.Chap_04;
public class _02_Else {
public static void main(String[] args) {
// 조건문 if else
int hour = 10;
if (hour < 14) {
System.out.println("아이스 아메리카노 +1");
} else { // 그 외에 경우이면
System.out.println("아이스 아메리카노(디카페인) +1");
}
System.out.println("커피 주문 완료 #1");
hour = 10;
boolean morningCoffee = false;
if (hour >= 14 || morningCoffee == true) {
System.out.println("아이스 아메리카노(디카페인) +1");
} else {
System.out.println("아이스 아메리카노 +1");
}
System.out.println("커피 주문 완료 #2");
}
}
package nadocoding.Chap_04;
public class _03_ElseIf {
public static void main(String[] args) {
// 조건문 else if
boolean hallabongAde = true;
boolean mangoJuice = true;
if (hallabongAde) {
System.out.println("한라봉 에이드 +1");
} else if (mangoJuice) {
System.out.println("망고 쥬스 +1");
} else {
System.out.println("아이스 아메리카노 +1");
}
System.out.println("커피 주문 완료 #1");
// else if 는 여러번 사용 가능
hallabongAde = false;
mangoJuice = false;
boolean oragneJuice = true;
if (hallabongAde) {
System.out.println("한라봉 에이드 +1");
} else if (mangoJuice) {
System.out.println("망고 쥬스 +1");
} else if (oragneJuice) {
System.out.println("오렌지 쥬스 +1");
} else {
System.out.println("아이스 아메리카노 +1");
}
System.out.println("커피 주문 완료 #2");
// else는 없어도 실행 가능
hallabongAde = false;
mangoJuice = false;
oragneJuice = false;
if (hallabongAde) {
System.out.println("한라봉 에이드 +1");
} else if (mangoJuice) {
System.out.println("망고 쥬스 +1");
} else if (oragneJuice) {
System.out.println("오렌지 쥬스 +1");
}
System.out.println("커피 주문 완료 #3");
}
}
package nadocoding.Chap_04;
public class _04_SwitchCase {
public static void main(String[] args) {
// switch case
// 석차에 따른 장학금
// 1등 : 전액 장학금
// 2등 : 반액 장학금
// 3등 : 반액 장학금
// 그 외 : 장학금 대상 아님
int ranking = 1;
if (ranking == 1) {
System.out.println("전액 장학금");
} else if (ranking == 2) {
System.out.println("반액 장학금");
} else if (ranking == 3) {
System.out.println("반액 장학금");
} else {
System.out.println("장학금 대상 아님");
}
System.out.println("조회 완료 #1");
// switch case 문을 사용
ranking = 5;
switch (ranking) {
case 1 :
System.out.println("전액 장학금");
break;
case 2 :
System.out.println("반액 장학금");
break;
case 3 :
System.out.println("반액 장학금");
break;
default:
System.out.println("장학금 대상 아님");
}
System.out.println("조회 완료 #2");
// case2와 case3을 통합
ranking = 3;
switch (ranking) {
case 1 :
System.out.println("전액 장학금");
break;
case 2 :
case 3 :
System.out.println("반액 장학금");
break;
default:
System.out.println("장학금 대상 아님");
}
System.out.println("조회 완료 #3");
// 중고상품의 등급에 따른 가격을 책정 (1급 : 최상, 4급 : 최하)
int grade = 1;
int price = 7000;
switch (grade) {
case 1 :
price += 1000;
case 2 :
price += 1000;
case 3 :
price += 1000;
break;
}
System.out.println(grade + "등급 제품의 가격 : " + price + "원");
// grade = 1 => 10000, grade = 3 => 8000
// break를 이용해 명령을 여러번 수행하게 할 수 있다.
// If else 문은 범위와 같은 경우에 유용
// switch case 문은 값이 명확한 경우에 유용
}
}
package nadocoding.Chap_04;
public class _01_If {
public static void main(String[] args) {
// 조건문 if
int hour = 15;
// if 문 내에서 하나의 문장을 실행할 때는 {} 생략 가능
// if 문 내에서 두 개 이상의 문장을 실행할 때는 {} 생략 불가능
if (hour < 14) {
System.out.println("아이스 아메리카노 +1");
System.out.println("샷 추가");
}
System.out.println("커피 주문 완료 #1");
hour = 10;
boolean morningCoffee = true;
if (hour < 14 && morningCoffee == false) { // 두 개 이상의 조건 입력 가능
System.out.println("아이스 아메리카노 +1");
}
System.out.println("커피 주문 완료 #2");
hour = 15;
morningCoffee = true;
if (hour >= 14 || morningCoffee) {
System.out.println("아이스 아메리카노(디카페인) +1");
}
System.out.println("커피 주문 완료 #3");
}
}
package nadocoding.Chap_04;
public class _02_Else {
public static void main(String[] args) {
// 조건문 if else
int hour = 10;
if (hour < 14) {
System.out.println("아이스 아메리카노 +1");
} else { // 그 외에 경우이면
System.out.println("아이스 아메리카노(디카페인) +1");
}
System.out.println("커피 주문 완료 #1");
hour = 10;
boolean morningCoffee = false;
if (hour >= 14 || morningCoffee == true) {
System.out.println("아이스 아메리카노(디카페인) +1");
} else {
System.out.println("아이스 아메리카노 +1");
}
System.out.println("커피 주문 완료 #2");
}
}
package nadocoding.Chap_04;
public class _03_ElseIf {
public static void main(String[] args) {
// 조건문 else if
boolean hallabongAde = true;
boolean mangoJuice = true;
if (hallabongAde) {
System.out.println("한라봉 에이드 +1");
} else if (mangoJuice) {
System.out.println("망고 쥬스 +1");
} else {
System.out.println("아이스 아메리카노 +1");
}
System.out.println("커피 주문 완료 #1");
// else if 는 여러번 사용 가능
hallabongAde = false;
mangoJuice = false;
boolean oragneJuice = true;
if (hallabongAde) {
System.out.println("한라봉 에이드 +1");
} else if (mangoJuice) {
System.out.println("망고 쥬스 +1");
} else if (oragneJuice) {
System.out.println("오렌지 쥬스 +1");
} else {
System.out.println("아이스 아메리카노 +1");
}
System.out.println("커피 주문 완료 #2");
// else는 없어도 실행 가능
hallabongAde = false;
mangoJuice = false;
oragneJuice = false;
if (hallabongAde) {
System.out.println("한라봉 에이드 +1");
} else if (mangoJuice) {
System.out.println("망고 쥬스 +1");
} else if (oragneJuice) {
System.out.println("오렌지 쥬스 +1");
}
System.out.println("커피 주문 완료 #3");
}
}
package nadocoding.Chap_04;
public class _04_SwitchCase {
public static void main(String[] args) {
// switch case
// 석차에 따른 장학금
// 1등 : 전액 장학금
// 2등 : 반액 장학금
// 3등 : 반액 장학금
// 그 외 : 장학금 대상 아님
int ranking = 1;
if (ranking == 1) {
System.out.println("전액 장학금");
} else if (ranking == 2) {
System.out.println("반액 장학금");
} else if (ranking == 3) {
System.out.println("반액 장학금");
} else {
System.out.println("장학금 대상 아님");
}
System.out.println("조회 완료 #1");
// switch case 문을 사용
ranking = 5;
switch (ranking) {
case 1 :
System.out.println("전액 장학금");
break;
case 2 :
System.out.println("반액 장학금");
break;
case 3 :
System.out.println("반액 장학금");
break;
default:
System.out.println("장학금 대상 아님");
}
System.out.println("조회 완료 #2");
// case2와 case3을 통합
ranking = 3;
switch (ranking) {
case 1 :
System.out.println("전액 장학금");
break;
case 2 :
case 3 :
System.out.println("반액 장학금");
break;
default:
System.out.println("장학금 대상 아님");
}
System.out.println("조회 완료 #3");
// 중고상품의 등급에 따른 가격을 책정 (1급 : 최상, 4급 : 최하)
int grade = 1;
int price = 7000;
switch (grade) {
case 1 :
price += 1000;
case 2 :
price += 1000;
case 3 :
price += 1000;
break;
}
System.out.println(grade + "등급 제품의 가격 : " + price + "원");
// grade = 1 => 10000, grade = 3 => 8000
// break를 이용해 명령을 여러번 수행하게 할 수 있다.
// If else 문은 범위와 같은 경우에 유용
// switch case 문은 값이 명확한 경우에 유용
}
}
반복문
package nadocoding.Chap_04;
public class _05_For {
public static void main(String[] args) {
// 반복문 For
// fori만 입력하면 자동으로 기본 틀 완성
// 매장 방문
System.out.println("어서오세요. 나코입니다.");
// 또 다른 손님 입장
System.out.println("어서오세요. 나코입니다.");
System.out.println("어서오세요. 나코입니다.");
// 만약에 인사 법이 바뀜
System.out.println("환영합니다. 나코입니다.");
System.out.println("환영합니다. 나코입니다.");
System.out.println("환영합니다. 나코입니다.");
// 매장의 이름이 바뀜
System.out.println("환영합니다. 코나입니다.");
System.out.println("환영합니다. 코나입니다.");
System.out.println("환영합니다. 코나입니다.");
System.out.println("환영합니다. 코나입니다.");
System.out.println("환영합니다. 코나입니다.");
System.out.println("------반복문 사용-----");
// 반복문 사용
for (int i = 0; i < 10; i++) {
// System.out.println("어서오세요. 나코입니다." + i);
// System.out.println("환영합니다. 나코입니다." + i);
System.out.println("환영합니다. 코나입니다." + i);
}
// 짝수만 출력
for (int i = 0; i < 10; i += 2) {
System.out.print(i);
}
// 02468
System.out.println();
// 홀수만 출력
for (int i = 1; i < 10; i += 2) {
System.out.print(i);
}
// 13579
System.out.println();
// 숫자 거꾸로 출력
for (int i = 5; i > 0; i--) {
System.out.print(i);
}
// 54321
System.out.println();
// 1부터 10까지의 합
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
System.out.println("현재까지의 총합은 " + sum + "입니다.");
}
System.out.println("1부터 10까지 모든 수의 총합은 " + sum + "입니다."); // 1부터 10까지 모든 수의 총합은 55입니다.
}
}