728x90

 

문제 : 1330번: 두 수 비교하기 (acmicpc.net)

 

1330번: 두 수 비교하기

두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오.

www.acmicpc.net

 

brain Storming
if문 사용
한 줄에 두 수 받기 뭐가 있을까
한 줄에 공백으로 두개 받고 구분자로 나누기? StringTokenizer
방법1 : Scanner + split()
방법2 : BufferedReader + StringTokenizer

 

풀이

일단 스캐너로 숫자1 공백 숫자2 이런식으로 입력을 받고

공백을 기준으로 split을 이용하여 나눠서 배열에 넣는다(split이 배열로 반환하기에 배열로 받아줘야함)

이후 배열의 인덱스번호로 두 수를 지정하고 int로 형변환 해주면서 각각 변수에 넣어주고 if문으로 조건을 주어서 출력했다

 

정답

Scanner + String Class split() 방법

import java.util.*;

public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        String num = sc.nextLine();

        String[] nums = num.split(" "); // String Class인 split()은 배열로 반환하므로, 배열로 받아야함


        // 배열로 받은 것을 인덱스 번호로 수 2개로 나눔
        int num1 =  Integer.parseInt(nums[0]);
        int num2 =  Integer.parseInt(nums[1]);

        if(num1 < num2){
            System.out.println("<");
        }else if(num1 > num2){
            System.out.println(">");
        }else {
            System.out.println("==");
        }

    }
}

 

 

728x90
반응형
728x90

 

A. StringBuffer 안에 쓸 수 있는 많이 쓰는 메소드

1) append()

받아온 값을 뒤에 추가로 이어주는 메소드

// append()
// 받아온 값을 뒤에 추가로 이어주는 메소드
buffer3.append("abc"); // 결과값 abcabc
System.out.println(buffer3);
System.out.println("buffer3의 실주소값 : " +System.identityHashCode(buffer3)); // append 추가후에도 주소값 같음
																		// ->수정 후에도 buffer가변클래스인걸 알 수 있음

 

*이중 append()

// 2) append() 반환값 : Stringbuffer
buffer3.append("abc").append("def"); // 메소드 체이닝
System.out.println(buffer3); // 결과값 abcabcdef
System.out.println("abc, def 추가 후의 buffer3의 수용량 : " +buffer3.capacity()); 		// 수용량 단위는 character 한문자이므로 기본용량16에 abc 세글자를 +3해서 19
System.out.println("abc, def 추가 후의 buffer3에 들어있는 실제 값의 길이 : " +buffer3.length()+"\\n"); // StringBuffer 생성자에 들어간 문자열 abc 길이3

 

 

2) insert()

원하는 자리에 값 추가 시킬 수 있는 메소드

// 원하는 자리에 값 추가 시킬 수 있는 메소드
buffer3.insert(2,"zzz");
System.out.println("인덱스2에 추가 후의 buffer3 : "+buffer3+"\\n"); // abzzzcabcdef

 

 

3) delete()

데이터 삭제하는 메소드

delete(int start, int end) : StringBuffer deleteCharAt(int index) : StringBuffer

// 데이터 삭제하는 메소드
// delete(int start, int end) : StringBuffer	
// deleteCharAt(int index) : StringBuffer	

buffer3.delete(2, 5);							 // zzz 삭제. 마지막 인덱스 미포함. 
System.out.println("삭제 후의 buffer3 : "+buffer3); // delete(2, 5-1) // (start, end-1)
buffer3.deleteCharAt(2);
System.out.println("삭제 후의 buffer3 : "+buffer3+"\\n"); //

 

 

4)reverse()

앞뒤 거꾸로 값을 바꿔놓는 메소드

buffer3.reverse();							 // zzz 삭제. 마지막 인덱스 미포함. 
System.out.println("reverse의 buffer3 : "+buffer3); // 

StringBuilder sb = new StringBuilder("abc"); 
sb.append("zzz").insert(2,"yy").reverse().delete(1,3);
// abc + zzz -> abyyczzz -> zzzcyyba -> zcyyba

 

 


 

 

B. String 안에 쓸 수 있는 많이 쓰는 메소드

 

1)charAt ()

charAt (int index):char 해당 문자열의 index번째 문자를 char로 변환

 

2)concat()

concat(String str):String String concatStr = str.concat("!!!"); System.out.println("concatStr : "+concatStr)

concat(String str):String 원래 문자열 끝에 매개변수로 들어온 값을 이어붙인 문자열 반환

String concatStr = str.concat("!!!");
System.out.println("concatStr : "+concatStr);
str += "!!!"; // concat과 같은 역할 : +
System.out.println(str);

 

3)equals()

equals(Object anObject):boolean

문자열이 같은지 확인

System.out.println("concatStr.equals(str) : "+concatStr.equals(str));
// 결과값 : concatStr.equals(str) : true

 

4)substring()

substring(int beginIndex):String

해당 인덱스 넘버부터 문자열 시작

substring(int beginIndex, int endIndex):String

A to B 사이의 문자열 일부 반환

System.out.println("str.substring(6) : "+str.substring(6));
// 결과값 : str.substring(6) : world!!!

str.substring(0,4) : Hell
// 결과값 : str.substring(0,4) : Hell

 

5)replace()

replace(char oldChar, char newChar):String

기존 문자를 새로운 문자로 대체하여 반환

System.out.println("str.replace('l','e') : "+str.replace('l', 'e'));
// 결과값 : str.replace('l','e') : Heeeo wored!!!

 

6)toUpperCase() & toLowerCase()

toUpperCase():String toLowerCase():String

문자열을 대/소문자로 변형 후 반환

System.out.println("str.toUpperCase() : "+str.toUpperCase());
System.out.println("str.toLowerCase() : "+str.toLowerCase());
// 결과값 : str.toUpperCase() : HELLO WORLD!!!
// 결과값 : str.toLowerCase() : hello world!!!

 

7)equalsIgnoreCase()

equalsIgnoreCase(String anotherString):boolean 대문자는 무시하고 비교

String str2 = "Wonderful";
String str3 = "wonderful";
System.out.println(str2.equals(str3));			    // 결과값 : false
System.out.println(str2.equalsIgnoreCase(str3));// 결과값 : true

 

8)trim()

trim():String

앞 뒤에 있는 빈 공간을 제거한 문자열 반환

String str4 = "    Java";
String str5 = "  Java  ";
String str6 = "Java    ";	
System.out.println(str4+" : "+str4.trim());
System.out.println(str5+" : "+str5.trim());
System.out.println(str6+" : "+str6.trim());
// 결과값
/*
Java : Java
Java   : Java
Java     : Java
*./

 

9)split()

split(String str):String[]

전달받은 구분자를 통해 문자열을 잘라 String[]반환

String splitStr = "Java, Oracle, JDBC, Front, Server, Framework";
String[] strArr = splitStr.split(", "); // 공백도 나누는 기준인걸 잊지마
for(int i=0; i < strArr.length; i++) {
	System.out.println(strArr[i]); //
/* 결과값
Java
Oracle
JDBC
Front
Server
Framework
*/

 

 

 

728x90
반응형

+ Recent posts