반응형
문자열 추출
* Math.random();
- 로또 번호 뽑기
int num = (int) (Math.random() * 45) +1;
System.out.println(num);
- 아스키코드표 대응 문자열 뽑기
char num = (char)((char)(Math.random() * 127) + 1);
System.out.println(num);
int num = (int)(Math.random() * 127) + 1;
System.out.println((char)num);
- Character.isDigit()
- Character.isUpperCase()
- Character.isLowerCase()
public class Test01 {
public static void main(String[] args) {
// Math.random();
// 아스키코드표
char num = (char) ((char) (Math.random() * 127) + 1);
System.out.println(num);
if (num >= '0' && num <= '9') {
System.out.println("숫자");
} else if (num >= 'A' && num <= 'Z') {
System.out.println("영어 대문자");
} else if (num >= 'a' && num <= 'z') {
System.out.println("영어 소문자");
} else {
System.out.println("특수문자");
}
// 위 코드보다 더 간단한 방법 = 메소드 이용 //
// 메소드로 구분하기
// API 보기
// Character 클래스 = 자바에서 사용하는 모든 문자
if(Character.isDigit(num)) {
System.out.println("숫자");
} else if (Character.isUpperCase(num)) {
System.out.println("대문자");
} else if (Character.isLowerCase(num)) {
System.out.println("소문자");
} else {
System.out.println("특수문자");
}
}
}
for문
for(변수 초기화식; 변수 조건문; 변수 증감식) {
변수 조건문이 true면 반복 실행할 문장;
}
- 3의 배수 Fizz, 5의 배수 Buzz, 15의 배수 Fizz Buzz
for (int i = 1; i < 30; i ++) {
if (i % 15 == 0) {
System.out.print("Fizz & Buzz, ");
} else if (i % 5 == 0) {
System.out.print("Buzz, ");
} else if (i % 3 == 0) {
System.out.print("Fizz, ");
} else {
System.out.print(i + ", ");
}
int number = 0;
for(int i = 1; i < 100; i++) {
if(String.valueOf(i).contains("8")) {
System.out.println("8이 들어간 숫자 : "+i);
number++;
}
}
System.out.println(" ");
System.out.println("8이 들어간 숫자 수 : " + number);
실전 연습문제
[문제] 시저 암호는 고대 로마의 황제 줄리어스 시저가 만들어 낸 암호임. 예를 들어 알파벳 A를 입력했을 때, 그 알파벳의 n개 뒤에 오는(여기서는 예를 들 때 3으로 지정하였다)알파벳이 출력되는 것이다. 예를 들어 바꾸려는 단어가 'CAT"고, n을 5로 지정하였을 때 "HFY"가 되는 것이다. 어떠한 암호를 만들 문장과 n을 입력했을 때 암호를 만들어 출력하는 프로그램을 작성해라.
- charAt() : 문자열 내 특정 위치에 있는 문자 검색
1. Scanner를 사용하여 사용자로부터 입력을 받는다.
2. 사용자에게 "암호화할 문장을 입력하세요. (대문자)" 메시지를 출력한다.
3. 사용자로부터 한 줄의 입력을 받는다.
4. 입력된 문장을 출력한다.
5. 반복문을 사용하여 입력된 각 문자에 대해 다음을 수행한다:
현재 문자를 ch 변수에 저장한다.
ch에 3을 더한 값을 encrypted 문자열에 추가한다.
encrypted는 초기에 빈 문자열로 시작한다.
6. 암호화된 문장을 출력한다.
import java.util.Scanner;
public class Test03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System. in);
String input; // 평문
String encrypted = ""; // 암호문 : ""로 초기화
System.out.println("암호화 할 문장을 입력하세요. (대문자)");
input = sc.nextLine();
System.out.println(input);
for (int i = 0; i < input.length(); i ++) { // input의 길이만큼
char ch = input.charAt(i);
encrypted += (char)(input.charAt(i) + 3);
}
System.out.println(encrypted);
}
}
- 정해진 문장에서 숫자 또는 영어 문자만 추출 출력하기
public class Test04 {
public static void main(String[] args) {
String text = "1q2w3e4r5t";
System.out.println("문자열에서 숫자만 추출:");
for (int i = 0; i < text.length(); i++) {
char currentChar = text.charAt(i);
if (Character.isDigit(currentChar)) {
System.out.print(currentChar);
}
}
}
}
- 홀수 출력하기 (1)
public class For04 {
public static void main(String[] args) {
for (int i = 0; i < 10; i ++) {
if (i % 2 == 0) {
continue;
} else {
System.out.println(i);
}
}
}
}
- 짝수 출력하기
public class Test001 {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
if(i % 2 !=0) {
continue;
} else {
System.out.println(i);
}
}
}
}
- 홀수 출력하기 (2)
public class For04 {
public static void main(String[] args) {
for (int i = 1; i < 10; i += 2) {
System.out.println(i);
}
}
}
public class For04 {
public static void main(String[] args) {
for (int i = 1; i < 10; i ++) {
if (i == 5) {
continue; // 5가 컨티뉴에 닿으면 다시 for문 시작. 불필요한 숫자 제거.
}
System.out.println(i);
}
}
}
- 반쪽 트리모양 만들기 (for문 3개 필요)
for(int i = 0; i < 5; i++) {
for(int j = i + 1; j < 5; j++) {
System.out.print(" "); // print (ln이 아님)
}
for(int j = 1; j < i + 2; j++) {
System.out.print("*"); // print (ln이 아님)
}
System.out.println("");
- 트리모양 별 찍기
public static void main(String[] args) {
for (int i = 0; i < 5; i ++) {
for (int j = i + 1; j < 5; j ++) {
System.out.print(" "); // print (ln이 아님)
}
for (int j = 0; j < i * 2 + 1; j ++) {
System.out.print("*"); // print (ln이 아님)
}
System.out.println("");
- ForEach
int number[] = {
10,
20,
30,
40,
50
};
for (int i = 0; i < number.length; i ++) {
System.out.println(number[i]);
}
System.out.println("==============================\n");
for (int i : number) { // 데이터 : 자료
System.out.println(i);
}
- for문으로 무한 반복하기
public static void main(String[] args) {
for (;;) {
System.out.println("!");
}
반응형
'개발 공부 Today I Learned' 카테고리의 다른 글
[국비 14일차 TIL] JAVA 2차원 배열 (1) | 2023.12.08 |
---|---|
[국비 13일차 TIL] JAVA 배열 연습 (2) | 2023.12.07 |
[국비 11일차 TIL] JAVA 연산자, 조건문 if (2) | 2023.12.05 |
[국비 10일차 TIL] JAVA 클래스, 메소드, 명령어, 데이터타입 (1) | 2023.12.04 |
[국비 9일차 TIL] JAVA 배열, 변수, 객체 지향 (0) | 2023.12.01 |
댓글