Java >> Java tutorial >  >> Tag >> new

Java nye strengmetoder - fra Java 8 til Java 17

Strings er den mest brugte datatype i Java. Næsten alle programmer i Java gør brug af strenge. Derfor behandles strenge med særlig opmærksomhed i Java. Fra tid til anden tilføjes nye metoder til String-klassen, så arbejdet med strenge bliver ubesværet og enkelt. join() i Java 8, chars() og codePoints() i Java 9, isBlank(), lines(), repeat(), strip(), stripLeading() og stripTrailing() i Java 11, indent(), transform (), describeConstable() og resolveConstantDesc() i Java 12, formatted(), stripIndent() og translateEscapes() i Java 15 er nogle nye Java-strengmetoder. I dette indlæg vil vi se alle de nye metoder tilføjet til String-klassen fra Java 8 til Java 17.

Java 8 nye strengmetoder

Kun én metode introduceres til String klasse i Java 8, dvs. join() .

join() :

Denne metode bruges til at forbinde strengelementerne adskilt af et skilletegn. Den har to versioner. En, der tager afgrænsningstegn og en række strenge som argumenter, og en anden, der tager afgrænsning og en Iterable som argumenter. Iterable kan være listen over strenge, sæt af strenge osv...

import java.util.Arrays;
import java.util.List;

public class Java8StringMethods
{
	public static void main(String[] args) 
	{
		String languages = String.join("_", "Java", "HTML", "Python", "CSS", "PHP");
		
		System.out.println(languages);     
		
		List<String> languageList = Arrays.asList("Java", "HTML", "Python", "CSS", "PHP");
		
		languages = String.join(", ", languageList);
		
		System.out.println(languages);     
	}
}

Output:

Java_HTML_Python_CSS_PHP
Java, HTML, Python, CSS, PHP

Java 9 nye strengmetoder

chars() og codePoints() er de to nye metoder introduceret i Java 9. Begge returnerer en IntStream .

chars() :

Denne metode returnerer en IntStream af char-værdier for den givne streng.

public class Java9StringMethods
{
	public static void main(String[] args) 
	{
		"String".chars().forEach(System.out::println);
	}
}

Output:

83
116
114
105
110
103

codePoints() :

Denne metode returnerer en IntStream af Unicode-kodepunkter for tegnene i den givne streng.

public class Java9StringMethods
{
	public static void main(String[] args) 
	{
		"String".codePoints().forEach(System.out::println);
	}
}

Output:

83
116
114
105
110
103

Java 10 nye strengmetoder

Ingen nye metoder.

Java 11 nye strengmetoder

Der er introduceret 6 nye strengmetoder i Java 11. De er – isBlank() , lines() , repeat() , strip() , stripLeading() og stripTrailing() .

isBlank() :

Du kan bruge denne metode til at kontrollere, om en given streng er tom eller ej. En streng siges at være tom, hvis den er tom eller kun indeholder hvide mellemrum.

public class Java11StringMethods
{
	public static void main(String[] args) 
	{
		System.out.println("".isBlank());                  //Output : true
		System.out.println("   ".isBlank());               //Output : true
		System.out.println("\t \t".isBlank());             //Output : true
		System.out.println("\n \n".isBlank());             //Output : true
		System.out.println("STRING".isBlank());            //Output : false
		System.out.println("String \t \n".isBlank());      //Output : false
	}
}

linjer() :

Denne metode returnerer en strøm af linjer ekstraheret fra den givne streng. En linje kan defineres som en sekvens af nul eller flere tegn efterfulgt af en linjeterminator.

public class Java11StringMethods
{
	public static void main(String[] args) 
	{
		System.out.println("\n\n".lines().count());                //Output : 2
		System.out.println("abc \n xyz".lines().count());          //Output : 2
		System.out.println("123 \n 456 \n".lines().count());       //Output : 2
		System.out.println("abc \n 123 \n xyz".lines().count());   //Output : 3
	}
}

repeat() :

Denne metode returnerer den kaldende streng gentaget n gange.

public class Java11StringMethods
{
	public static void main(String[] args) 
	{
		System.out.println("1".repeat(5));
		System.out.println("abc".repeat(3));
		System.out.println("1a2b3c".repeat(2));
	}
}

Output:

11111
abcabcabc
1a2b3c1a2b3c

strip() :

Du kan bruge denne metode til at fjerne alle indledende og efterfølgende hvide mellemrum i den givne streng.

public class Java11StringMethods
{
	public static void main(String[] args) 
	{
		System.out.println("   1   ".strip());
		System.out.println("\t A \t".strip());
		System.out.println("\n A1 \n".strip());
		System.out.println("1   A".strip());
	}
}

Output:

1
A
A1
1   A

stripLeading() :

Denne metode fjerner kun indledende hvide mellemrum i en streng.

public class Java11StringMethods
{
	public static void main(String[] args) 
	{
		System.out.println("    1".stripLeading());
		System.out.println("   11".stripLeading());
		System.out.println("  111".stripLeading());
		System.out.println(" 1111".stripLeading());
	}
}

Output:

1
11
111
1111

stripTrailing() :

Denne metode fjerner kun efterfølgende hvide mellemrum i en streng.

public class Java11StringMethods
{
	public static void main(String[] args) 
	{
		System.out.println("   1    ".stripTrailing());
		System.out.println("  11    ".stripTrailing());
		System.out.println(" 111    ".stripTrailing());
		System.out.println("1111    ".stripTrailing());
	}
}

Output:

   1
  11
 111
1111

Java 12 nye strengmetoder

Yderligere fire nye metoder introduceres i Java 12. De er – indent() , transform() , describeConstable() og resolveConstantDesc() .

indent() :

Denne metode anvender indrykning for hver linje i den givne streng i henhold til den angivne værdi.

public class Java12StringMethods 
{
	public static void main(String[] args) 
	{
		System.out.println("123\nabc\nABC".indent(4));
	}
}

Output:

    123
    abc
    ABC

transform() :

Denne metode gælder givet Function til strengen.

public class Java12StringMethods 
{
	public static void main(String[] args) 
	{
		System.out.println("string".transform(String::toUpperCase));
		
		System.out.println("abc".transform(str -> str.concat("xyz"))
								.transform(String::toUpperCase));
	}
}

Output:

SNOR
ABCXYZ

Fra Java 12 implementerer String-klassen yderligere to grænseflader – Constable og ConstantDesc . Fra disse to grænseflader arver String-klassen yderligere to metoder – describeConstable() fra Constable og resolveConstantDesc() fra ConstantDesc .

describeConstable() :

Denne metode returnerer en Optional indeholdende nominel deskriptor for den givne streng, som er selve strengen.

public class Java12StringMethods 
{
	public static void main(String[] args) 
	{
		System.out.println("123".describeConstable().get());
		System.out.println("abc".describeConstable().get());
		System.out.println("ABC".describeConstable().get());
	}
}

Output:

123
abc
ABC

resolveConstantDesc() :

Denne metode løser den givne streng som ConstantDesc og returnerer selve strengen.

import java.lang.invoke.MethodHandles;

public class Java12StringMethods 
{
	public static void main(String[] args) 
	{
		System.out.println("Java".resolveConstantDesc(MethodHandles.lookup()));
		System.out.println("Python".resolveConstantDesc(MethodHandles.lookup()));
		System.out.println("JavaScript".resolveConstantDesc(MethodHandles.lookup()));
	}
}

Output:

Java
Python
JavaScript

Java 13 nye strengmetoder

Ingen nye metoder.

Java 14 nye strengmetoder

Ingen nye metoder.

Java 15 nye strengmetoder

formateret() :

Denne metode formaterer den givne streng med de leverede argumenter. Denne metode ligner String.format(this, args) .

public class Java15StringMethods 
{
	public static void main(String[] args) 
	{
		System.out.println("1) %s 2) %s 3) %s ".formatted("Java", "Python", "JavaScript"));
	}
}

Output:

1) Java 2) Python 3) JavaScript

stripIndent() :

Denne metode fjerner indrykning af den givne streng i begyndelsen og i slutningen af ​​hver linje.

public class Java16StringMethods 
{
	public static void main(String[] args) 
	{
		System.out.println("   123".stripIndent());
		System.out.println("123   ".stripIndent());
		System.out.println("   123   ".stripIndent());
	}
}

Output:

123
123
123

translateEscapes() :

Denne metode returnerer en streng med escape-sekvenser oversat som om i en streng bogstavelig.

public class Java15StringMethods 
{
	public static void main(String[] args) 
	{
		String str = "Tab \t Next Line \n Space \s Single Quote \' Double Quote \" ";
		
		System.out.println(str.translateEscapes());
	}
}

Output:

Tab Næste linje
Mellemrum Enkelt citat ' Dobbelt citat "

Java 16 nye strengmetoder

Ingen nye metoder.

Java 17 nye strengmetoder

Ingen nye metoder.


Java tag