Java에서 알파벳순으로 문자열 비교
Java에서 두 개 이상의 문자열을 비교하는 방법에는 여러 가지가 있지만 문자열을 사전 순 (알파벳순)으로 비교하려면 여기에 해당하는 기사가 있습니다. 사전 순서는 사전의 단어 배열을 따릅니다. 아래에는 Java에서 문자열을 알파벳순으로 비교하는 두 가지 방법을 보여주는 예제가 있습니다.
compareTo()
를 사용하여 알파벳순으로 문자열 비교
이 예에서는 여러 문자열을 비교하여 결과가 올바른지 확인합니다. compareTo()
메소드는String
클래스와 함께 제공되므로 어떤 문자열로도 호출하여 다른 문자열과 비교할 수 있습니다. 아래에서s1
을s2
,s3
을s4
,s5
를s6
등과 비교합니다.
compareTo()
를 사용하여 문자열을 비교할 때,이 메소드는 문자열이 이전 또는 이후에 와야하는 위치 또는 동일한 지 여부를 알려주는int
값을 반환합니다. 예를 들어,s1.compare(s2)
를 사용하여 apple
값이있는s1
을 orange
가있는s2
와 비교하면comparedResult
함수는 음의 정수를 얻습니다. s1
값이s2
앞에옵니다.
comparedResult
가s3
이s4
와 비교 될 때와 같이 양의 정수를 가져 오면 사 전적으로 대문자가 소문자 앞에 나오기 때문에s3
이s4
뒤에옵니다.
compareTo()
메소드가 0을 리턴하면s9
및s10
의 경우와 같이 비교 된 두 문자열이 동일 함을 의미합니다.
class CompareStrings {
public static void main(String args[]) {
String s1 = "apple";
String s2 = "orange";
compareStrings(s1, s2);
String s3 = "apple";
String s4 = "Orange";
compareStrings(s3, s4);
String s5 = "sole";
String s6 = "soul";
compareStrings(s5, s6);
String s7 = "john";
String s8 = "johnson";
compareStrings(s7, s8);
String s9 = "one";
String s10 = "one";
compareStrings(s9, s10);
}
public static void compareStrings(String s1, String s2) {
int comparedResult = s1.compareTo(s2);
if (comparedResult > 0) {
System.out.println(s1 + " comes after " + s2);
} else if (comparedResult < 0) {
System.out.println(s1 + " comes before " + s2);
} else {
System.out.println(s1 + " is equal to " + s2);
}
}
}
출력:
apple comes before orange
apple comes after Orange
sole comes before soul
john comes before johnson
one is equal to one
기존 방식을 사용하여 알파벳순으로 문자열 비교
이 예에서는 이전 예와 출력이 동일한 동일한 문자열을 사용하지만 방법은 다릅니다. 모든 클래스의 메서드를 사용하는 대신 자체 메서드를 만듭니다. compareStrings()
는 비교가 발생하는 메소드입니다.
compareStrings()
에서s1
및s2
두 문자열의 끝까지 확인하는 루프를 생성합니다. 루프 내에서 먼저charAt()
을 사용하여 문자열의 문자를 가져 와서 ASCII 값을 반환하는int
로 캐스트합니다. 두 문자열에 대해이 작업을 수행 한 다음 ASCII 값을 비교합니다. 모든 ASCII 값이 같으면 두 문자열도 같음을 의미합니다.
ASCII 값이 다른 경우(int) s1.charAt(i) - (int) s2.charAt(i);
를 사용하여 문자열의 ASCII 값 간의 차이를 반환합니다. 루프 후에 문자열의 길이를 확인하고 그 차이를 반환합니다.
마지막으로,compareStrings()
메소드에서 반환 된int
값을 가져 와서 문자열과 함께getComparisonResult()
함수에 전달합니다.이 함수는 문자열이 앞이나 뒤에 와야하는지 여부에 관계없이 결과를 인쇄합니다. 같은.
class CompareStrings {
public static void main(String[] args) {
String s1 = "apple";
String s2 = "orange";
int getValue1 = compareStrings(s1, s2);
String s3 = "apple";
String s4 = "Orange";
int getValue2 = compareStrings(s3, s4);
String s5 = "sole";
String s6 = "soul";
int getValue3 = compareStrings(s5, s6);
String s7 = "john";
String s8 = "johnson";
int getValue4 = compareStrings(s7, s8);
String s9 = "one";
String s10 = "one";
int getValue5 = compareStrings(s9, s10);
getComparisonResult(getValue1, s1, s2);
getComparisonResult(getValue2, s3, s4);
getComparisonResult(getValue3, s5, s6);
getComparisonResult(getValue4, s7, s8);
getComparisonResult(getValue5, s9, s10);
}
public static int compareStrings(String s1, String s2) {
for (int i = 0; i < s1.length() && i < s2.length(); i++) {
if ((int) s1.charAt(i) == (int) s2.charAt(i)) {
continue;
} else {
return (int) s1.charAt(i) - (int) s2.charAt(i);
}
}
if (s1.length() < s2.length()) {
return (s1.length() - s2.length());
} else if (s1.length() > s2.length()) {
return (s1.length() - s2.length());
} else {
return 0;
}
}
private static void getComparisonResult(int value, String s1, String s2) {
if (value > 0) {
System.out.println(s1 + " comes after " + s2);
} else if (value < 0) {
System.out.println(s1 + " comes before " + s2);
} else {
System.out.println(s1 + " and " + s2 + " are equal");
}
}
}
출력:
apple comes before orange
apple comes after Orange
sole comes before soul
john comes before johnson
one and one are equal
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn