Java 3일차 : Case, 난수발생, 문자열
Case 문
-
case 내 에서는 가급적 변수선언은 하지 않는게 좋다
꼭 해야한다면 {} 로 구역을 정해주고 하자
package test.day0405;
import java.util.Scanner;
public class switchEx1 {
public static void main(String[] arg) {
Scanner sc = new Scanner(System.in);
int num = 0;
System.out.println("숫자를 입력하세요.");
num = sc.nextInt();
switch(num) {
case 1:
{
int a = 10; //부득이 변수를 내부에 선언하고 싶다면 꼭 구역설정{}을 해주자.
System.out.println("No. 1");
break;
}
case 2:
System.out.println("No. 2");
break;
case 3:
System.out.println("No. 3");
break;
default:
System.out.println("not 1,2 or 3");
}
}
}
예제
- switch문에서 1바이트 문자 가능, 문자열도 가능 (문자열은 Java7.0부터 가능)
package test.day0405;
import java.util.Scanner;
public class switchEx2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String str = "";
System.out.println("영문 문자열을 입력해주세요.");
str = sc.nextLine();
//문자열에서 한글자만 얻는 메소드 : charAt(str)
switch(str.charAt(0)){
case 'a':
case 'A':
System.out.println("begin with an A");
break;
case 'b':
case 'B':
System.out.println("begin with a B");
break;
default:
System.out.println("It's not an A or B");
}
System.out.println("jdk7.0부터는 switch문에서 문자열이 가능해졌다.");
switch(str) {
case "apple":
System.out.println("It's an apple");
break;
case "banana":
System.out.println("It's a banana");
break;
default:
System.out.println("want another fruit!");
}
}
}
난수
- Math.random() 이용하기
- Random 클래스 이용하기
package test.day0405;
public class randomEx3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=1 ; i<=10 ; i++) {
double r = Math.random();
System.out.println(r);
}
System.out.println("0~9");
for(int i=1 ; i<=10 ; i++) {
int r = (int)(Math.random()*10);
System.out.println(r);
}
System.out.println("65~90"); //대문자 난수발생
for(int i=1 ; i<=10 ; i++) {
int r = (int)(Math.random()*26 + 65);
System.out.printf("%3c",r); //문자로출력
}
}
}
실습문제
- 반복횟수에 대한 문제(다중 for문)
♥
♥♥
♥♥♥
♥♥♥♥
♥♥♥♥♥
♥♥♥♥
♥♥♥
♥♥
♥
숫자를 입력하면 1부터 그 숫자까지 합계를 구하시오(for)
1~100사이의 난수를 발생시킨 후 그 숫자 알아맞추기(Math.random() & while)
두개의 숫자 x, y를 입력하면 x의 y승을 구하시오(for문 이용)
-------------------------------------testEx1
package test.day0405;
public class testEx1 {
public static void main(String[] args) {
for(int i=1 ; i<=10 ; i++) {
for(int j=1 ; (j<=i && i<=5) || ( i>5 && j<=11-i) ; j++) {
System.out.print("♥");
}
System.out.println("");
}}}
-------------------------------------testEx2
package test.day0405;
import java.util.Scanner;
public class testEx2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.println("숫자를 입력하세요.");
int num = sc.nextInt();
int sum = 0;
for(int i=1 ; i<=num ; i++) {
sum += i;
}
System.out.println("1부터 " + num + "까지의 합은" + sum + "입니다.");
}}
-----------------------------------testEx3
package test.day0405;
import java.util.Scanner;
public class testEx3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int rand = 0;
int num = 0;
Scanner sc = new Scanner(System.in);
while(true) {
rand = (int)(Math.random()*100);
System.out.println("1부터 100까지의 숫자를 입력하세요.");
num = sc.nextInt();
System.out.println("rand: " + rand + ", your number: " + num);
if(num == rand) {
System.out.println("맞췄습니다!");
break;
}else {
System.out.println("틀렸습니다!");
}}
}
}
--------------------------------------testEx4
package test.day0405;
import java.util.Scanner;
public class testEx4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int num1 = 0;
int num2 = 0;
int result = 1;
System.out.println("숫자 두개를 입력해주세요.");
num1 = sc.nextInt();
num2 = sc.nextInt();
for( int i=1 ; i<=num2 ; i++) {
result *= num1;
}
System.out.println(num1 + "의 " + num2 + "승은 " + result + "입니다.");
}
}
------------------------------------testEx5
package test.day0405;
public class testEx5 {
public static void main(String[] args) {
for(int i=2 ; i<=9 ; i++) {
String str = "[ " + i + " th ]";
System.out.printf("%-15s", str);
}
System.out.println();
for(int i=1 ; i<=9 ; i++) {
for(int j=2 ; j<=9 ; j++) {
String str = "";
str = j + " x " + i + " = " + (i*j);
System.out.printf("%-15s",str);
}
System.out.println();
}
}
}
문자열
봐도봐도 새로운 String Class API
예시
package test.day0405;
public class stringEx6 {
public static void main(String[] args) {
String s1 = "Have a Nice Day";
String s2 = "red,blue,yellow,white";
String s3 = " hello ";
String a = "Apple";
String b = "apple";
System.out.println("length(): " + s1.length());
System.out.println("charAt(7): " + s1.charAt(7));
System.out.println("indexOf('n'): " + s1.indexOf('n'));
String[] arr = s2.split(","); //문자열을 특정 문자로 분리 (배열타입을 반환)
for(String s:arr)
System.out.println(s);
System.out.println("replace: " + s1.replace("a","*"));
System.out.println("startsWith: " + s1.startsWith("have"));
System.out.println("endsWith: " + s1.endsWith("day?")); //완전히 같아야 트루.
System.out.println("s3's length is " + s3.length() + " After Trim: " + s3.trim().length());
System.out.println("substring: " + s2.substring(9));
System.out.println("get nice from s1: " + s1.substring(7,11));
//substring(시작인덱스, 끝인덱스+1)
System.out.println("toLowerCase: " + s1.toLowerCase());
System.out.println("toUpperCase: " + s1.toUpperCase());
System.out.println("valueOf: " + String.valueOf('a')); //static 이라서 앞에 String붙혀줌
//equals : 문자열 값 비교
System.out.println(a.equals(b)); //대소문자가 달라서
System.out.println(a.equalsIgnoreCase(b));
}
}
실습문제
- 영문 문자열을 입력받은 후 소문자는 대문자로, 대문자는 소문자로 변경하여 출력하시오(for)
1!~10! 까지 출력하시오(for)
영문 문자열을 입력받아 숫자의 갯수와 알파벳의 갯수를 출력하시오
- 3자리 숫자의 합이 10이 나오는 숫자를 모두 구하시오. (for문 3번)
---------------------------------------------------------testEx6
package test.day0405;
import java.util.Scanner;
public class testEx6 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str;
System.out.println("영문 문자열을 입력하세요.");
str = sc.nextLine();
for(int i=0 ; i <= str.length()-1 ; i++ ){
char ch = str.charAt(i);
if(ch >='A' && ch <='Z') {
ch += 'a' - 'A';
System.out.print(ch);
}else if(ch >= 'a' && ch <= 'z'){
ch -= 'a' - 'A';
System.out.print(ch);
}else {
System.out.print(ch);
}
}
}
}
--------------------------------------------------------testEx7
package test.day0405;
public class testEx7 {
public static void main(String[] args) {
for(int i = 1 ; i <=10 ; i++ ) {
int result = 1;
System.out.print(i + "! = ");
for(int j = 1 ; j <= i ; j++ ) {
result *= j;
}
System.out.print(result);
System.out.println();
}
}
}
--------------------------------------------------------testEx8
package test.day0405;
import java.util.Scanner;
public class testEx8 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = "";
System.out.println("문자열을 아무거나 입력해보세요.");
str = sc.nextLine();
int num = 0;
int alpha = 0;
for(int i=0 ; i <= str.length()-1 ; i++) {
char ch = str.charAt(i);
if(ch >= '0' && ch <='9') {
num++;
}else if( (ch >='a' && ch <= 'z' ) || (ch >= 'A' && ch <= 'Z')) {
alpha++;
}
}
System.out.println("numbers: " + num + "개 " + "alphabets: " + alpha + "");
}
}
-------------------------------------------------testEx9
package test.day0405;
public class textEx9 {
public static void main(String[] args) {
for(int i=1 ; i < 10 ; i++) {
for(int j=0 ; j <10 ; j++) {
for(int k=0 ; k <10 ; k++) {
if( i + j + k == 10 ) {
System.out.printf("%d%d%d\n",i,j,k);
}}}}}}
Comments