search
HomeJavajavaTutorialLearn more about string classes in Java
Learn more about string classes in JavaJun 30, 2017 am 10:52 AM
javastringfurther

The following editor will bring you an old cliché JavaStringAdvanced (must read). The editor thinks it is quite good, so I will share it with you now and give it as a reference for everyone. Let’s follow the editor and take a look.

Preface

There are three most commonly used classes for string operations, namely String and StringBuilder. , StringBuffer, these three classes will be discussed in detail below...

String

The String class represents a string , this is the most basic class for strings, and this is also the most commonly used class. I will not introduce it in detail here

Construction

new String(String str)

new String(StringBuilder str)

new String(StringBuffer str)

new String(byte[] bys,String charsetName) Constructs a new String by decoding the specified byte subarray using the specified character set.

Common methods

str charAt(int index) Returns the character at the specified index

String concat(String str) Connect the specified string str to the end of this string and return the characters after the connection is successful, so it needs to be accepted to be effective.

boolean contains(CharSequence s) determines whether this string contains the specified char value sequence. CharSequence here is an interface, you can directly use its subclasses as parameters (String, StringBuffer, StringBuild)

static String copyValueOf(char[] c) Convert character array into characters String and return

static String copyValueOf(char[] c,int off,int count) Convert the intercepted character array into a string and return it, off is the subscript to start interception, and count is the number of interceptions

boolean endWith(String s) determines whether the string ends with s

boolean equals(Object o) is used for comparison

int indexOf(char c) returns the character c The index of the first occurrence in the string

int indexOf(char c,int fromIndex) Start searching from the specified index and find the index of the first occurrence

int indexOf(String str ) returns the index of the first occurrence of the specified substring in this string.

int indexOf(String str,int fromIndex) Returns the index of the first occurrence of the specified substring in this string, starting from the specified index.

boolean isEmpty()

int length()

boolean matches(String regex) Whether to match regular expression

trim () Returns a copy of the string, ignoring leading and trailing whitespace.

String substring(int beginIndex) returns a new string, which is a substring of this string.

String substring(int beginIndex, int endIndex) Returns a new string that is a substring of this string.

String toUpperCase() Converts all characters in this String to uppercase using the rules of the default locale.

String[] split(String regex) Splits this string based on matches of the given regular expression.

String[] split(String regex, int limit) Splits this string based on matching the given regular expression.

char[] toCharArray() Converts this string to a new character array.

byte[] getBytes(Charset charset) Use the given charset to encode this String into a byte sequence and store the result into a new byte array

Note

The above new String(byte[] bys,String charsetName) Construction method is very important, it can change the encoding set of the string (and byte[] getBytes (Charset charset)), let’s look at an example below. The code is as follows:

/*
 * 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

Thread safety variable character sequence. A string buffer similar to String, but cannot be modified. Of course, the most important point is thread safety. We can see from its source code that thread control blocks are used for some operations (append, insert..) to achieve synchronization, which is suitable for use in multi-threads. Source The code is as follows:

 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)

Commonly used methods

StringBuffer append(str) appends the str of the specified type to the end of this string (String, char, char[], int, double ,float,long,StringBuffer,StringBuilder)

StringBuffer insert(int offest, str) Insert the str of the specified type into this sequence. offset represents the index of the position where the insertion starts. The types are String, char, char [],int,double,float,long,StringBuffer,StringBuilder

String delete(int fromIndex,int endIndex) removes the string in this sequence and returns a new buffered string

StringBuffer reverse() Reverse a string

String substring(int start) Returns a new String that contains the character subsequence currently contained by this character sequence.

String substring(int start, int end) Returns a new String containing the character subsequence currently contained by this sequence.

StringBuffer deleteCharAt(int index) Removes the char at the specified position in this sequence.

int length() length

String toString() Returns the string representation of the data in this sequence.

StringBuilder

It is recommended to use this class in preference because it is faster than StringBuffer in most implementations. However, this class is not thread-safe and is only suitable for single threads. If you use multi-threading, it is recommended to use StringBuffer. Of course, you can also use this, but you need to implement synchronization yourself

Construction method

new StringBuilder(String str)

Common methods

The common methods of this class are the same as those of StringBuffer. I won’t list them one by one here. You can use them by referring to the above

The above is the detailed content of Learn more about string classes in Java. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
带你搞懂Java结构化数据处理开源库SPL带你搞懂Java结构化数据处理开源库SPLMay 24, 2022 pm 01:34 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

Java集合框架之PriorityQueue优先级队列Java集合框架之PriorityQueue优先级队列Jun 09, 2022 am 11:47 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

完全掌握Java锁(图文解析)完全掌握Java锁(图文解析)Jun 14, 2022 am 11:47 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

一起聊聊Java多线程之线程安全问题一起聊聊Java多线程之线程安全问题Apr 21, 2022 pm 06:17 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

详细解析Java的this和super关键字详细解析Java的this和super关键字Apr 30, 2022 am 09:00 AM

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

Java基础归纳之枚举Java基础归纳之枚举May 26, 2022 am 11:50 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

java中封装是什么java中封装是什么May 16, 2019 pm 06:08 PM

封装是一种信息隐藏技术,是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法;封装可以被认为是一个保护屏障,防止指定类的代码和数据被外部类定义的代码随机访问。封装可以通过关键字private,protected和public实现。

归纳整理JAVA装饰器模式(实例详解)归纳整理JAVA装饰器模式(实例详解)May 05, 2022 pm 06:48 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于设计模式的相关问题,主要将装饰器模式的相关内容,指在不改变现有对象结构的情况下,动态地给该对象增加一些职责的模式,希望对大家有帮助。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.