Resumen de métodos comunes de cadenas de Java | Java

El procesamiento de cadenas es muy importante en muchos lenguajes de programación. Esto también se pregunta a menudo en las entrevistas. Si no tiene una comprensión firme, es fácil no responder.

Cadena de Java

En Java, Stringes un tipo de referencia. Sin embargo, debido a que las cadenas se utilizan ampliamente en la programación de Java, el compilador de Java procesa las cadenas y puede utilizar directamente dos "para representar las cadenas.

// 我们通常的做法
String s = "Hello World!";
// 下面这种写法也可以
String s = new String("Hello World!");
// 还可以这样写 String内部是通过一个char[]表示的
String s = new String(new char[] {
    
    'H', 'e', 'l', 'l', 'o', '!'});

Una característica importante de las cadenas de Java es que las cadenas son inmutables (contenido).

  • La variable de cadena declarada es mutable
  • La cuerda en sí es inmutable.
String s1 = "Hello";	// 此时有一块内存存着"Hello", 且可通过s1访问它
s1 = "World";			// 此时有一块内存存着"Hello", 还有一块内存存着"World", 通过s1只能找到"World", "Hello"并未改变

Aquí puede echar un vistazo a un análisis de memoria de pila simple

Manipulación de cadenas de Java

Comparación de cadenas

Solo puede utilizar equals()métodos ==que no sean fiables.
p.ej

String s1 = "Hello";
String s2 = "Hello";
String s3 = "World";
String s4 = "wOrLd";

System.out.println(s1.equals(s2));				// true
System.out.println(s3.equals(s4));				// false
System.out.println(s3.equalsIgnoreCase(s4));	// true

Búsqueda de subcadenas o búsqueda

  • indexOf()Busque la subcadena de izquierda a derecha y devuelva el subíndice
  • lastIndexOf()Busque la subcadena de derecha a izquierda y devuelva el subíndice
  • contains()Determinar si incluir una determinada subcadena
  • startWith()Determinar si comenzar con una determinada subcadena
  • endWith()Determinar si terminar con una determinada subcadena
String s1 = "Are you ok ?";
System.out.println(s1.indexOf("o"));
System.out.println(s1.lastIndexOf('o'));
System.out.println(s1.contains("you"));
System.out.println(s1.startsWith("are"));
System.out.println(s1.endsWith(" ?"));
// 输出:
//      5
//		8
//		true
//		false
//		true

Empalme de cuerdas

  • +Empalme

Al generar, puede utilizar directamente +la salida de empalme de cadenas y números.

String s1 = "Hello";
int n1 = 8848;
float f1 = 10.24f;
boolean b1 = false;
System.out.println(s1 + n1 + f1+ b1);
// 输出:
//      Hello884810.24false

Usar +empalme entre cuerdas

String s1 = "Hello";
String s2 = "World";
String s3 = s1 + ' ' + s2;	// s3 = "Hello World"
  • Método estático join(): use una cadena para concatenar una matriz de cadenas
String[] sArr = {
    
    "Hello", "Hi", "Bye"};
String s = String.join("--", sArr);		// 静态方法 所以是String.join()
System.out.println(s);
// 输出:
//      Hello--Hi--Bye

Eliminar cadenas en blanco iniciales y finales

  • trim()
    trim()Retire la cabeza y la cola (Inglés),空格 ,,\t\r\n
String s1 = " Hello \u3000";		// \u3000是中文空格Unicode编码(站长之家有转换工具 感兴趣的可以看看)
String s2 = "\t\nWorld \r ";
System.out.println(s1.trim());
System.out.println(s2.trim());
// 输出:
//      `Hello   `
//      `World`
  • strip()
    strip()Incluye trim()funciones y también puede eliminar espacios similares a los espacios chinos
  • stripLeadingQuite solo el espacio de la izquierda
  • stripTrailingQuite solo el espacio de la derecha
String s1 = " Hello \u3000";
String s2 = "\t\nWorld \r ";
System.out.println(s1.strip());
System.out.println(s2.strip());
// 输出:
//      `Hello`
//      `World`

Segmentación de cadenas

  • split
String s1 = "Are you ok ?";
String[] sArr = s1.split(" ");
System.out.println(Arrays.toString(sArr));		// 推荐这种打印方式 别用for
// 输出:
//      [Are, you, ok, ?]
  • substring()
    substring()Su esencia es extraer subcadenas, que también se pueden considerar como una especie de segmentación.
String s1 = "Are you ok ?";
System.out.println(s1.substring(4));		// [4, s1.length()-1]
System.out.println(s1.substring(4, 7));		// [4, 7)
// 输出: 
//      you ok ?
// 		you

Reemplazo de subcadena

  • replace()
    replace()No cambie la cadena original, devolverá una nueva cadena
String s1 = "Are you ok ?";
String s2 = s1.replace("o", "ooo");		// 要么用另一个变量接收 要么直接打印 s1未改变
System.out.println(s2);

Salida formateada

  • format()
    Método estático, preste atención String.format()a
String s = "My name is %s, and I'm %d years olds.";
System.out.println(String.format(s, "XXX", 18));
// 输出:
//      My name is XXX, and I'm 18 years olds.

Conversión de tipo

Convertir entre String y char []

String s1 = "Hello World!";
char[] sArr = s1.toCharArray();
String s2 = new String(sArr);

System.out.println(Arrays.toString(sArr));
System.out.println(s2);
// 输出:
//      [H, e, l, l, o,  , W, o, r, l, d, !]
//      Hello World!

Conversión de cadenas y tipos de datos básicos

Aquí la conversión es relativamente simple, es necesario prestar atención, 静态方法no pertenece a la instancia, debe llamarse

String s1 = "123";
String s2 = "123.45f";
String s3 = "false";
float f = 80.86f;

System.out.println(Integer.parseInt(s1));
System.out.println(Float.parseFloat(s2));
System.out.println(Boolean.parseBoolean(s3));
System.out.println(String.valueOf(f));
// 输出:
//      123
//      123.45
//		false
//		80.86

Supongo que te gusta

Origin blog.csdn.net/qq_40759015/article/details/114602296
Recomendado
Clasificación