>Java >java지도 시간 >Java 문자열 고급 샘플 코드 공유(수집)

Java 문자열 고급 샘플 코드 공유(수집)

黄舟
黄舟원래의
2017-06-18 09:38:381466검색

아래 편집기는 JavaStrings에 대한 고급 기사를 제공합니다(꼭 읽어야 할 기사). 에디터가 꽤 좋다고 생각해서 지금 공유해서 참고용으로 올려보겠습니다. 에디터를 따라가서 함께 살펴볼까요

Foreword

문자열 연산에 가장 일반적으로 사용되는 세 가지 클래스, 즉 String, StringBuilder 및 StringBuffer가 있습니다. 이 세 가지 클래스에 대해서는 아래에서 자세히 설명합니다.. .. ..

String

문자열을 나타내는 클래스입니다. 이것은 문자열에 대한 가장 기본적인 클래스이기도 합니다. 여기서는 자세히 소개하지 않겠습니다.

new String(String str)new String(StringBuilder str)

new String(StringBuffer str)

new String(byte[] bys,String charsetName) 지정된

charset

을 사용하여 디코딩 지정된 바이트 하위 배열의 새 문자열입니다.

공통 메소드

str charAt(int index) 지정된 인덱스의 문자를 반환합니다.String concat(String str) 지정된 문자열 str을 이 문자열의 끝에 연결하고 연결이 완료된 후의 문자를 반환합니다. 따라서 이 문자열에 지정된 char 값 시퀀스가 ​​포함되어 있는지 확인하려면 boolean contain(CharSequence s)을 적용해야 합니다. 여기서 CharSequence는 인터페이스이며 해당 하위 클래스를 매개 변수(String, StringBuffer)로 직접 사용할 수 있습니다. , StringBuild)

static String copyValueOf(char[] c)

문자 배열

을 문자열로 변환하고 반환합니다.

static String copyValueOf(char[] c,int off,int count) 가로채는 문자 배열을 문자열로 변환합니다. off는 가로채기를 시작하는 첨자이고, count는 가로채기 횟수입니다

boolean endWith(String s)는 비교를 위해 문자열이 s

boolean equals(Object o)로 끝나는지 확인합니다

int indexOf( char c) return 문자열에서 문자 c가 처음 나타나는 인덱스

int indexOf(char c,int fromIndex) 지정된 인덱스부터 검색을 시작하고 처음 나타나는 인덱스를 찾습니다

int indexOf(String str) Return 지정된 하위 문자열 이 문자열에서 처음 나타나는 인덱스입니다.

int indexOf(String str,int fromIndex) 지정된 인덱스부터 시작하여 이 문자열에서 지정된 하위 문자열이 처음 나타나는 인덱스를 반환합니다.

boolean isEmpty()

int length()

boolean match(String regex)

정규식

trim()과 일치하는지 여부 앞뒤 공백을 무시하고 문자열의 복사본을 반환합니다.

String substring(int BeginIndex)는 이 문자열의 하위 문자열인 새 문자열을 반환합니다.

String substring(int BeginIndex, int endIndex)는 이 문자열의 하위 문자열인 새 문자열을 반환합니다.

String toUpperCase() 기본 로케일 규칙을 사용하여 이 문자열의 모든 문자를 대문자로 변환합니다.

String[] Split(String regex) 주어진 정규 표현식과 일치하는 항목을 기준으로 이 문자열을 분할합니다.

String[] Split(String regex, intlimit) 주어진 정규식과 일치하는 것을 기준으로 이 문자열을 분할합니다.

char[] toCharArray() 이 문자열을 새 문자 배열로 변환합니다.

byte[] getBytes(Charset charset)는 주어진 charset을 사용하여 이 문자열을 바이트 시퀀스로 인코딩하고 결과를 새로운 바이트 배열에 저장합니다.

참고

new String(byte[] bys Above , String charsetName ) 이

구성 방법 은 문자열의 인코딩 세트를 변경할 수 있습니다(byte[] getBytes(Charset charset)와 함께 사용). 코드는 다음과 같습니다.

/*
 * InputStreamReader实现了将字节流FileInputStream转换为字符流,然后使用转换来的字节流创建高效流,从而实现高效的读写
 */

/*
 * 编码集(我的eclipse编辑器默认的是utf-8
 * 下面将中文字符串的编码集变为GBK写入a.txt文件,因为a.txt默认的是utf-8的因此这里在文件中显示的是乱码
 * 然后我们读出来的还是GBK的,因为我们写入的是GBK编码集的,但是我的eclipse是utf-8的编码集,因此在控制台上输出的还是乱码
 * new String(byte[] bys,String
 * charsetName)使用这个构造方法将byte数组改变编码集并且转换为utf-8格式的,那么这次在控制台上输出的就不乱码了
 */

// 将GBK格式的中文写入a.txt文件
File file = new File("src/a.txt");
FileOutputStream fileOutputStream = new FileOutputStream(file);
String str = "中";
byte[] by = str.getBytes("GBK"); // 将字符串改为GBK编码集
fileOutputStream.write(by);
fileOutputStream.close();

//从a.txt文件中读取中文
FileInputStream fileInputStream = new FileInputStream(file);
int len;
byte[] bys = new byte[4];
while ((len = fileInputStream.read(bys)) != -1) {
 System.out.println(new String(bys, "GBK"));
}
fileInputStream.close();

StringBuffer


스레드로부터 안전한 변경 가능 문자 시퀀스. String과 유사하지만 수정할 수 없는 문자열 버퍼입니다. 물론 가장 중요한 점은 스레드 안전성입니다. 멀티 스레드에서 사용하기에 적합한 동기화를 달성하기 위해 일부 작업(추가, 삽입 등)에 스레드 제어 블록이 사용된다는 것을 소스 코드에서 볼 수 있습니다. 코드는 다음과 같습니다:

 public synchronized StringBuffer append(Object obj) {
super.append(String.valueOf(obj));
return this;
}

public synchronized StringBuffer append(String str) {
super.append(str);
return this;
}

public synchronized StringBuffer delete(int start, int end) {
super.delete(start, end);
return this;
}

/**
 * @throws StringIndexOutOfBoundsException {@inheritDoc}
 * @since 1.2
 */
public synchronized StringBuffer deleteCharAt(int index) {
super.deleteCharAt(index);
return this;
}

Construction


new StringBuffer(StringBuilder str)

new StringBuffer(String str)일반적으로 사용되는 메서드


StringBufferappend(str)는 type str 이 문자열의 끝에 추가합니다 (String, char, char[], int, double, float, long, StringBuffer, StringBuilder)

StringBuffer insert(int offfest, str) 지정된 유형의 str을 이 시퀀스에 삽입합니다 , offset 삽입 시작 위치를 나타내는 인덱스 유형에는 String, char, char[], int, double, float, long, StringBuffer, StringBuilder가 있습니다.

String delete(int fromIndex,int endIndex)는 이 시퀀스에서 문자열을 제거하고 새 버퍼 문자열을 반환합니다.

StringBuffer reverse()는 문자열을 반전합니다.

String substring(int start)는 현재 문자 하위 시퀀스를 포함하는 새 문자열을 반환합니다. 이 문자 시퀀스에 포함됩니다.

String substring(int start, int end) 현재 이 시퀀스에 포함된 문자의 하위 시퀀스를 포함하는 새 문자열을 반환합니다.

StringBuffer deleteCharAt(int index) 이 시퀀스의 지정된 위치에서 문자를 제거합니다.

int length() 길이

String toString() 이 시퀀스에 있는 데이터의 문자열 표현을 반환합니다.

StringBuilder

이 클래스는 대부분의 구현에서 StringBuffer보다 빠르므로 우선적으로 사용하는 것이 좋습니다. 하지만 이 클래스는 스레드로부터 안전하지 않으며 단일 스레드에만 적합합니다. 멀티스레딩을 사용하는 경우 StringBuffer를 사용하는 것이 좋습니다. 물론 이를 사용할 수도 있지만 동기화를 직접 구현해야 합니다

Construction method

new StringBuilder(String str)

Commonmethods

이 클래스의 일반적인 메소드는 StringBuffer의 메소드와 동일하므로 여기서는 하나씩 나열하지 않겠습니다. 위 내용을 참고하여

위 내용은 Java 문자열 고급 샘플 코드 공유(수집)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.