문자열 및 문자 배열

문자열 및 문자 배열

문자열 연산과 문자 배열 연산은 상호 작용 및 구현 기능에서 가장 일반적으로 사용되고 처리되는 두 가지입니다. 그러나 이전에는 항상 혼란스럽고 변환 응용 프로그램을 능숙하게 구별하기 위해 다음과 같은 분류가 고유합니다.

먼저 문자를 작은 따옴표로 묶어야합니다. ''

Java에는 문자열을 나타내는 기본 데이터 유형이 없지만 String 클래스는 문자열을 나타내는 데 사용되며 큰 따옴표 ""로 묶어야합니다.

우선, 배열은 기본 데이터 유형 또는 참조 유형을 저장할 수 있습니다. 그리고 하나의 데이터 유형 저장할 수 있습니다 .

참고 : 이는 기본 데이터 유형 외에 나머지는 참조 일뿐임을 의미합니다. (객체 등에 대한 참조 일 수 있지만 객체 자체는 아닙니다.)

여러 데이터 유형을 저장할 수 있다는 착각이 참조 유형을 저장할 수 있기 때문입니다 (기본 클래스 참조 (포인터)가 파생 된 클래스 객체를 가리 키기 때문입니다.이 아이디어는 전체의 상속을 개방한다고 말할 수 있습니다. 클래스뿐만 아니라 간단한 공장 디자인 패턴의 실현도 지원합니다.) 참고 [1]

다차원 배열이 없습니다. 배열 자체는 배열입니다. 즉 배열은 배열을 저장할 수 있지만 다차원 배열은 단지 환상 일뿐입니다.

int []는 이러한 유형의 참조를 나타냅니다. 배열을 만드는 것은 int []를 만드는 것입니다.

배열에 직접 사용되는 길이 속성이 있습니다.

길이를 지정할 필요없이 foreach (:) 루프를 사용하여 트래버스합니다.

가장 먼저. 문자열 초기화와 관련하여 char 배열로 만들 수 있습니다.

public class HelloWorld {
    
    
    public static void main(String[] args) {
    
    
        char[] a={
    
    'a','b','c','d'};

        String s = new String(a);

        String s1 = new String (a,1,2);//a,offset,count

        String s2 = new String("dfskj"); 
    }
}

연결 문자열은 +를 직접 사용할 수 있습니다.

모든 후속 작업은 문자열 개체의 메서드를 호출하는 것입니다.

String을 객체로 캡슐화하면 권한 부여를 실현하여 String이 강력한 기능을 보유하고 긴장을 사용합니다.

.length (); // 배열에서 직접 길이이며, 여기서 길이는 배열 생성시 결정되는 배열 자체의 속성과 동일하므로 배열의 길이를 변경할 수 없음도 결정합니다. , 그리고 여기서 length () 이것은 객체의 메서드를 호출하는 것과 동일하므로 길이를 제한없이 변경할 수 있습니다.이 메서드를 호출하여 문자열의 길이를 계산하면됩니다.

  • 검색 : (반환 값은 int) .indexOf (); // 최초 발생 위치; lastIndexOf (); // 마지막 발생 위치

  • Get : (반환 값 char) .charAt (int index)

  • ** 하위 하위 문자열 가져 오기 : ** substring (start, end (기본 끝을 쓰지 않음)) 반환 값 문자열

  • 공백 제거 : .trim ();

  • 문자열 교체 : replace (char old, char new)

  • 판단은 끝에서 시작됩니다 : startsWith (); endsWith ();

  • 문자열 분리 : 결과는 문자열 배열에 저장됩니다. .split (String sign, int limit (number of splits)); // 문자 분할, 정규 표현식도 가능

문자열과 문자 배열의 변환

이 부분은 무시하기 쉽지만 실제로 많이 사용됩니다.

Char [] 배열 및 문자열 유형 교환

1. 문자열 —> char []

  • 방법 1 : String 클래스의 toCharArray () 메서드

예 :

String a = "liushiwennb";
char[ ] arr = a.toCharArray();
  • 방법 2 : String 클래스 및 빈 char 배열의 charAt () 메서드를 통해

이 메서드는 먼저 문자열의 length () 메서드를 사용하여 char 배열의 크기를 결정합니다. 그런 다음 charAt ()을 사용하여 문자를 반환하고 루프를 사용하여 값을 할당합니다.

예 :

public class HelloWorld {
    
    
    public static void main(String[] args) {
    
    
        String a = "liushiwennb";
        char[ ] arr = new char[a.length()];  // 创建和a的长度一样的字符数组

        for (int b = 0; b < a.length(); b++){
    
    

            arr[b] = a.charAt(b);
        }
    }
}

2. char [] —> 문자열

  • 방법 1 : 다음과 같은 String 클래스의 생성자를 사용합니다.
char[ ] arr; // 非空的字符数组

这里有点将 char数组作为一个target,来新建一个String对象。

String result = new String(arr);

 
  • 방법 2 : char []-> StringBuffer-> String

    이것은 StringBuffer 중간 객체의 도움으로 다음과 같이 수행됩니다.

    char [] arr; // 비어 있지 않은 문자 배열

    StingBuffer sb = new StringBuffer();

    sb.append(arr);

    String result = sb.toString(); 
  • 방법 3 : 다음과 같은 String 클래스의 valueOf () 메서드 :
char[ ] arr; // 非空的字符数组

String result = String.valueOf(arr);
  • 방법 4 : 다음과 같은 빈 문자열을 사용합니다.
char[ ] arr; // 非空的字符数组

String result = "";  //创建一个空的字符串 这里是空的字符串,不是null(不存在)的字符串
for (int a = 0; a < arr.length; a++){
    
    
    result += arr[a];
}

5) 방법 5 : Arrays 클래스에서 다음과 같은 toString () 메서드를 사용합니다.

char[ ] arr; // 非空的字符数组

String result = Arrays.toString(arr);
  • · Integer valueOf (int i) : 지정된 int 값을 나타내는 Integer 인스턴스를 반환합니다.
  • · Integer valueOf (String s) : 지정된 String의 값을 보유하는 Integer 객체를 반환합니다.
  • · Integer valueOf (String s, int radix) : 두 번째 매개 변수에서 제공하는 기수가 파싱에 사용될 때 지정된 String에서 추출 된 값을 저장하는 Integer 객체를 반환합니다.
  • · 기수 ****는 기본을 지정합니다.

toString 메서드는 Object의 기존 메서드이고 모든 클래스는 Object를 상속하므로 "모든 개체에이 메서드가 있습니다".

저는 String이 우리가 상호 작용에서 가장 많이 사용하는 것이라고 생각하고, 측면에서 그 중요성을 인식하고 있기 때문에 힘을 실어줍니다.

일반적으로 System.out.println (xx)과 같이 출력의 편의를위한 것입니다. 괄호 안의 "xx"가 String 유형이 아닌 경우 xx의 toString () 메서드가 자동으로 호출됩니다.

대체로 썬 회사가 자바를 개발할 때 모든 종류의 문자열 연산을 용이하게하기 위해 특별히 추가 된 방법 일뿐입니다.

참고 1 :이 문서와 무관 한 추가 정보 : 파생 클래스를 기본 클래스로 강제 변환하면 파생 클래스에 대한 포인터가 기본 클래스가 될 수있는 개체에 제공됩니다. 그러나 이것은 절대 허용되지 않습니다. 파생 클래스의 포인터는 기본 클래스의 객체를 가리킬 수 없습니다. 파생 클래스의 메모리 공간이 기본 클래스의 메모리 공간보다 길기 때문에 액세스하면 메모리 오버플로가 발생하므로 포인터가 파생 클래스는 기본 클래스를 가리킬 수 없으며 기본 클래스로 강제 변환하는 것은 환상 일뿐입니다. 강제는 지적 할 수 있는지 여부와 완전히 다릅니다.

참고 2 : 참고 : Java는 문자열 유형에 대한 버퍼 풀 메커니즘을 제공합니다. 큰 따옴표를 사용하여 객체를 정의 할 때 Java 환경은 먼저 문자열 버퍼 풀로 이동하여 동일한 내용을 가진 문자열을 찾습니다. 존재하는 경우이를 사용합니다. , 그렇지 않으면 새 문자열을 만듭니다. 문자열은 버퍼 풀에 배치됩니다.

문제:

char 배열의 숫자를 int 유형으로 변환하는 방법

래퍼 클래스의 도움으로 : Integer.valueOf (String.valueOf (numberArray [i]));

추천

출처blog.csdn.net/qq_45175218/article/details/104290491