JavaRush /Java Blog /Random-KO /커피 브레이크 #115. Java에서 객체를 그룹화하는 간단한 방법입니다. charAt() 메소드 - ...

커피 브레이크 #115. Java에서 객체를 그룹화하는 간단한 방법입니다. charAt() 메소드 - Java에서 사용하는 방법

Random-KO 그룹에 게시되었습니다

Java에서 객체를 그룹화하는 쉬운 방법

출처: Dev.to 이 예에서는 컬렉션을 값으로 포함하는 Map 객체 의 그룹화를 단순화하는 방법을 알아봅니다 . 예를 들어, 키가 정수 이고 값이 문자열 배열인 Map커피 브레이크 #115.  Java에서 객체를 그룹화하는 간단한 방법입니다.  charAt() 메소드 - Java에서 사용하는 방법 - 1 객체가 있습니다 .

Grouper<Integer, String> grouper = new ArrayListGrouper<>();
        grouper.put(1, "a");
        grouper.put(1, "b");
        grouper.put(1, "c");
        grouper.put(1, "c");
        grouper.put(2, "c");
결과:
{1=[a, b, c, c], 2=[c]}
우리가 해야 할 일은 그룹화 전략을 정의하는 것뿐입니다. 예를 들어 이미 정의된 ArrayListGrouper 클래스는 ArrayList를 전략으로 사용합니다 . 우리는 언제든지 다른 GroupingStrateg를 사용하는 새로운 Grouper를 정의할 수 있습니다 . 이제 ArrayList를 HashSet 으로 변경하여 요소를 고유하게 만들어 보겠습니다.

public class HashSetGrouper<K, V> extends Grouper<K, V> {

    public HashSetGrouper() {
        super(HashSet::new);
    }
}
그런 다음 다음을 테스트합니다.

@Test
    public void testHashSetGrouper() {
        Grouper<Integer, String> grouper = new HashSetGrouper<>();
        grouper.put(1, "a");
        grouper.put(1, "b");
        grouper.put(1, "c");
        grouper.put(1, "c");
        grouper.put(2, "c");
        System.out.println(grouper);

    }
결과:
{1=[a, b, c], 2=[c]}
이제 키 1 에는 값 c가 반복되지 않는 세트가 있습니다. 예제 코드는 Github에 게시되어 있습니다 .

charAt() 메소드 - Java에서 사용하는 방법

출처: FreeCodeCamp Java의 charAt() 메서드는 주어진 또는 지정된 인덱스에 있는 문자열 의 char 문자 값을 반환합니다 . 오늘은 charAt() 메서드를 사용하는 방법을 살펴보고 구문부터 시작하여 몇 가지 예제와 사용 사례를 살펴보겠습니다.

Java charAt() 메소드를 사용하는 방법

charAt() 메서드 의 구문은 다음과 같습니다 .

public char charAt(int index)
charAt() 메서드를 사용하여 문자열에서 반환된 문자는 char 데이터 유형 입니다 . 잠시 후에 이것이 반환 값의 연결에 어떤 영향을 미치는지 살펴보겠습니다. 이제 예를 살펴보겠습니다.

public class Main {
  public static void main(String[] args) {
  
    String greetings = "Hello World";
    
    System.out.println(greetings.charAt(0));
    // H
  }
}
위 코드에서 Greetings 라는 변수에 저장된 문자열은 "Hello World"라고 말합니다. charAt() 메서드를 사용하여 인덱스 0에 있는 문자를 가져왔습니다. 해당 문자는 문자 H입니다. 첫 번째 문자는 항상 인덱스 0에 있고 두 번째 문자는 인덱스 1에 있는 식입니다. 부분 문자열 사이의 공백도 인덱스로 간주됩니다. 다음 예에서는 반환된 다른 문자를 연결하려고 할 때 어떤 일이 발생하는지 살펴보겠습니다. 연결이란 두 개 이상의 값을 하나로 결합하는 것을 의미합니다(대부분의 경우 이 용어는 문자열의 문자나 하위 문자열을 연결하는 데 사용됩니다).

public class Main {
  public static void main(String[] args) {
    String greetings = "Hello World";
    
    char ch1 = greetings.charAt(0); // H
    char ch2 = greetings.charAt(4); // o
    char ch3 = greetings.charAt(9); // l
    char ch4 = greetings.charAt(10); // d
    
    System.out.println(ch1 + ch2 + ch3 + ch4);
    // 391
  }
}
charAt() 메소드를 사용하여 인덱스 0, 4, 9, 10(각각 문자 H, o, l 및 d)을 가진 문자를 얻었습니다. 그런 다음 다음 문자를 인쇄하고 연결하려고 시도했습니다.

System.out.println(ch1 + ch2 + ch3 + ch4);
그러나 "Hold"를 반환하는 대신 391을 얻었습니다. 이는 반환된 값이 더 이상 문자열이 아니고 char 유형이기 때문입니다 . 따라서 이들을 연결할 때 인터프리터는 대신 ASCII 값을 추가합니다. H의 ASCII 값은 72, o의 값은 111, l의 값은 108, d의 값은 100입니다. 이들을 더하면 마지막 예에서 반환된 391이 됩니다.

오류 StringIndexOutOfBoundsException

문자열의 문자 수보다 큰 시퀀스 번호를 전달하면 콘솔에 StringIndexOutOfBoundsException 오류가 발생합니다. 이 오류는 Java에서 지원되지 않는 음수 인덱싱 사용에도 적용됩니다. 음수 인덱싱을 지원하는 Python과 같은 프로그래밍 언어에서 -1을 전달하면 0이 항상 첫 번째 문자를 반환하는 것과 유사하게 데이터 세트의 마지막 문자나 값이 제공됩니다. 예는 다음과 같습니다.

public class Main {
  public static void main(String[] args) {
    String greetings = "Hello World";
    
    char ch1 = greetings.charAt(20); 
    
    System.out.println(ch1);
    
    /* Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 20 
    */
  }
}
위 코드에서는 인덱스 20을 전달했습니다. char ch1 = Greetings.charAt(20); 이는 인사말 변수 의 문자 수를 초과하므로 오류가 발생했습니다. 위의 코드 블록에서 주석 처리된 오류 메시지를 볼 수 있습니다. 마찬가지로 다음과 같이 음수 값을 전달하는 경우: char ch1 = Greetings.charAt(-1); , 그러면 비슷한 오류가 발생합니다.

결론

이 기사에서는 Java에서 charAt() 메서드를 사용하는 방법을 배웠습니다. 인덱스 번호를 기반으로 문자열의 문자를 반환하는 방법과 해당 문자를 연결할 때 어떤 일이 발생하는지 살펴보았습니다. 또한 Java에서 charAt() 메서드 를 사용할 때 오류 응답을 얻을 수 있는 몇 가지 경우에 대해서도 이야기했습니다 .
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION