728x90

compareTo()

// 숫자형 비교
int compareTo(NumberSubClass referenceName)

// 문자열 비교
int compareTo(String anotherString)
  • compareTo()는 두개의 값을 비교하여 int 값으로 반환해 준다.
  • compareTo()는 위에서 적어둔 것 처럼 문자열 비교와 숫자 비교 두가지 방식이 존대한다.

 

숫자형 비교

  • 숫자형 비교는 단순히 크다(1), 같다(0), 작다(-1)을 결과값으로 리턴한다.
  • 숫자형 비교는 Byte, Double, Integer, Float, Long, Short 등을 비교 할 수 있다.
  • int로 선언해서 사용할 때는 Integer.compare(기준값, 비교값)으로 사용.
public class Main {
	public static void main(String[] args) {
    
		Integer a = 3; 
		Integer b = 4; 
		Double c = 1.0; 
		int x = 5;
		int y = 6;
        
		System.out.println( a.compareTo(b) ); // -1 
		System.out.println( a.compareTo(3) ); // 0 
		System.out.println( a.compareTo(2) ); // 1 
		System.out.println( c.compareTo(2.7) ); // -1
		System.out.println(Integer.compare(x, y)); // -1

	}
}

 

문자열 비교

  • 문자열 비교의 경우 같은 문자열은 숫자와 동일하게 0을 리턴
  • 문자열 비교는 숫자형 비교와 결과값이 다르므로 예제로 설명

 

비교 대상에 동일한 문자열이 포함 되어 있는 경우

public class Main {
	public static void main(String[] args) {
        String str = "abcd";

        System.out.println( str.compareTo("abcd") );  // 0 (같은 문자열은 0을 리턴)
        System.out.println( str.compareTo("ab") );  //  2
        System.out.println( str.compareTo("a") );  //  3
        System.out.println( str.compareTo("c") );  //  -2      

	}
}

 

str.compareTo("ab") / str.compareTo("a")

- 기준값의 앞자리부터 일치하는 문자열이 포함된 경우 (기준문자열길이-비교대상문자열길이) 리턴
ex) "abcd"(4) - "ab"(2) = 2  / "abcd"(4) - "a"(1) = 3 리턴

 

str.compareTo("c")

- 비교가 불가능한 지점의 각 문자열의 아스키값을 기준으로 비교 아스키 코드값의 차이값을 리턴

* compareTo는 같은 위치의 문자를 비교한다.

예제에서는 첫번째 위치에서 비교가 실패했기 때문에 "a"와 "c"의 차이값을 리턴한다. (a=97,c=99 / a-c=-2)

 

비교 대상과 문자열이 전혀 다른 경우

public class Main {
	public static void main(String[] args) {
        String str = "abcd";

        System.out.println( str.compareTo("zefd") ); // -25 
        System.out.println( str.compareTo("ABCD") ); // 32

	}
}

 

str.compareTo("zefd") 

- 위와 같은 논리로 첫 문자부터 다르므로 "a"와 "z"의 아스키코드 차이값 리턴

ex) a=97, z=122 / 97-122=-25

str.compareTo("ABCD")

- "a"와 "A"의 아스키코드 차이값 리턴

ex) a=97, A=65 / 97-65=32

728x90
728x90

rint()

rint()는 정수 값에 가장 가까운 매개 변수를 반환

public static double rint(double d)

 

rint() 예제

public class Main{
	public static void main(String args[]){
		double num1 = 100.675;
		double num2 = 10.400;
		double num3 = 99.200;

		System.out.println(Math.rint(num1)); // 101.0
		System.out.println(Math.rint(num2)); // 10.0
		System.out.println(Math.rint(num3)); // 99.0
	}
}
728x90
728x90

Math.round()

round()함수는 실수의 소수점 첫번째 자리를 반올림하여 정수로 리턴시킨다.

public static long round(double d)
public static int round(float f)

 

Math.round() 예제

double pie = 3.14159265358979;

System.out.println(Math.round(pie)); // 3
System.out.println(Math.round(pie*100)/100.0); // 3.14
System.out.println(Math.round(pie*1000)/1000.0); // 3.142
728x90
728x90

split()

split()은 입력받은 정규표현식 또는 특정 문자를 기준으로 문자열을 나누어 배열에 저장하여 리턴

split(String regex)
split(String regex, int limit)

split(String regex, int limit)

split(String regex) 와 동일하지만 두번째 인자 갖ㅅ으로 배열의 크기를 결정

 

split() 예제

String str = "010-1234-5678";
String[] num = str.split("-");

String ret1 = num[0]; // 010
String ret2 = num[1]; // 1234
String ret3 = num[2]; // 5678

String[] arr = str.split("-", 2);
String ret4 = arr[0]; // 010
String ret5 = arr[1]; // 1234-5678
728x90

'Java & Spring' 카테고리의 다른 글

[JAVA] rint() 사용법  (0) 2022.03.16
[JAVA] round() 사용법  (0) 2022.03.15
[JAVA] reverse() 사용법. 문자열 뒤집기  (0) 2022.03.13
[JAVA] Arrays.sort() 사용법. 배열 정렬 하기  (0) 2022.03.12
[JAVA] substring() 사용법  (0) 2022.03.11
728x90

reverser()

  • 자바에서 문자열을 뒤집을 때 사용하는 함수.
  • String 클래스에는 reverse() 함수가 없다.
  • StringBuilder, StringBuffer를 사용해서 쓴다.

 

StringBuilder 사용

public class Main {

    public static void main(String args[]) {
    	
    	String str = "abcde"; 
    	
    	// StringBuilder 선언
    	StringBuilder sb = new StringBuilder();
    	
    	// StringBuilder에 입력
    	sb.append(str);  
    	
    	// reverse 사용
    	sb.reverse(); 
    	
    	// 결과 출력
    	System.out.println(sb); // edcba

    }
}

 

StringBuffer 사용

public class Main {

    public static void main(String args[]) {
    	
    	String str = "abcde"; 
    	
    	// StringBuffer 선언, 입력
    	StringBuffer sb = new StringBuffer(str);
    	
    	// reverse 사용
    	String reverseStr = sb.reverse().toString(); 

    	// 결과 출력
    	System.out.println(reverseStr); // edcba

    }
}

 

728x90
728x90

Arrays.sort()

자바에서 배열이나 리스트를 정렬할 때 java.util.Arrays 클래스의 sort() 함수를 사용.

오름차순, 내림차순 정렬이 가능

 

오름차순 정렬

import java.util.*;

public class Main {

    public static void main(String args[]) {
    	
    	int[] arr = {1, 3, 4, 2, 5};         
    	String[] strArr = {"A", "C", "B", "E", "D"};
    	String[] strArr2 = {"가", "라", "나", "마", "다"};

    	Arrays.sort(arr);    
    	for(int x : arr) System.out.print(x + ", "); //arr : [1, 2, 3, 4, 5]
    	
    	Arrays.sort(strArr);  
    	for(String x : strArr) System.out.print(x + ", "); //strArr : [A, B, C, D, E]
    	
    	Arrays.sort(strArr2);  
    	for(String x : strArr2) System.out.print(x + ", "); //strArr2 : [가, 나, 다, 라, 마] 
 		
    }
}

 

내림차순 정렬

내림차순 정렬할 때는 Collections.reverseOrder() 함수를 사용.

내림차순은 byte, char, int, long 같은 Primitive Type 배열에는 적용이 불가능.

Integer, String 같은 Wrapper Class를 사용.

import java.util.*;

public class Main {

    public static void main(String args[]) {
    	
    	int[] arr = {1, 4, 2, 5, 3};
    	Integer[] arr2 = {1, 3, 4, 2, 5};         
    	String[] strArr = {"A", "C", "B", "E", "D"};
    	String[] strArr2 = {"가", "라", "나", "마", "다"};

    	Arrays.sort(arr, Collections.reverseOrder());   // error
    	
    	Arrays.sort(arr2, Collections.reverseOrder());   
    	for(int x : arr2) System.out.print(x + " "); //arr : [5, 4, 3, 2, 1]
    	
    	Arrays.sort(strArr, Collections.reverseOrder()); 
    	for(String x : strArr) System.out.print(x + " "); //strArr : [E, D, C, B, A]

    	Arrays.sort(strArr2, Collections.reverseOrder()); 
    	for(String x : strArr2) System.out.print(x + " "); //strArr2 : [마, 라, 다, 나, 가] 
 		
    }
}

 

728x90
728x90

substring()

substring()은 입력받은 위치를 기준으로 문자열을 잘라 리턴하는 함수

substring()에는 2가지 사용법이 있다

  • substring(int startIndex) - 시작인덱스 부터 끝까지
  • substring(int startIndex, endIndex) - 시작 인덱스부터 끝 인덱스 -1까지

 

substring() 예제

public class Main{ 
	public static void main(String[] args){ 
    	String str1 = "Hello World"; 
        System.out.println( str1.substring(6) ); // World
        System.out.println( str1.substring(0,5) ); // Hello 
    } 
}
728x90
728x90

parseInt()

  • 문자열을 숫자로 변환 시킨다
  • Integer 클래스의 static 함수
  • 입력받은 문자열을 Integer로 변환한 int 값 리턴

 

parseInt() 예제

public class Main {
    public static void main(String[] args) {
        String str1 = "123";
        String str2 = "-123";
        int intVal1 = Integer.parseInt(str1);
        int intVal2 = Integer.parseInt(str2);
        System.out.println(intVal1); // 123
        System.out.println(intVal2); // -123
    }
}
728x90

+ Recent posts