Manipulatie van Java-tekenreeksen: functies en methoden met VOORBEELD

Wat zijn snaren?

Een string is letterlijk een reeks karakters. Hé, zei je karakters, is dit niet een primitief gegevenstype in Java? Ja, dus in technische termen is de basis-Java-string in feite een reeks tekens.

Dus mijn bovenstaande reeks van “ROSE'kan worden weergegeven als de following -

Java-tekenreeks

Waarom strings gebruiken?

Een van de belangrijkste functies van de moderne informatica is het verwerken van menselijke taal.

Net zoals getallen belangrijk zijn voor wiskunde, zijn taalsymbolen belangrijk voor betekenis en besluitvorming. Hoewel het misschien niet zichtbaar is voor computergebruikers, verwerken computers de taal op de achtergrond net zo precies en nauwkeurig als een rekenmachine. Help-dialogen bieden instructies. Menu's bieden keuzes. En gegevensdisplays tonen statussen, fouten en realtime wijzigingen in de taal.

Als Java-programmeur zal een van je belangrijkste hulpmiddelen voor het opslaan en verwerken van taal de klasse String zijn.

Voorbeelden van tekenreekssyntaxis

Laten we nu eens naar de syntaxis gaan. We moeten dit tenslotte in Java-code schrijven, nietwaar.

String is een array van tekens, weergegeven als:

//String is an array of characters
char[] arrSample = {'R', 'O', 'S', 'E'};
String strSample_1 = new String (arrSample);

In technische termen wordt de String in het bovenstaande voorbeeld als volgt gedefinieerd:

= new (argument);

Nu kunnen we onze strings niet altijd als arrays schrijven; daarom kunnen we de String in Java als volgt definiëren:

//Representation of String
String strSample_2 = "ROSE";

In technische termen wordt het bovenstaande weergegeven als:

= ;

Het String Klasse Java strekt de Objectklasse.

String aaneenschakeling:

Aaneenschakeling is het samenvoegen van twee of meer strings.

Kijk eens naar de onderstaande afbeelding-

Voorbeelden van tekenreekssyntaxis

We hebben twee snaren str1 = “Rock” en str2 = “Star”

Als we deze twee strings bij elkaar optellen, zou het resultaat str3= “RockStar” moeten zijn.

Controleer het onderstaande codefragment en hierin worden de twee methoden uitgelegd om tekenreeksaaneenschakeling uit te voeren.

De eerste is het gebruik van “concat'methode van de String-klasse en de tweede gebruikt de rekenkundige operator '+'. Beide resulteren in dezelfde output

public class Sample_String{
  public static void main(String[] args){
//String Concatenation
String str1 = "Rock";
String str2 = "Star";
//Method 1 : Using concat
String str3 = str1.concat(str2);
System.out.println(str3);
//Method 2 : Using "+" operator
String str4 = str1 + str2;
System.out.println(str4);
}
}

Belangrijke Java-stringmethoden:

Java-tekenreeksmethoden

Laten we de klasse Java String een paar vragen stellen en kijken of deze deze kan beantwoorden:

String “Lengte”-methode

Hoe bepaal je de lengte van een gegeven String? Ik heb een methode opgegeven met de naam "lengte“. Gebruik het tegen de String die je nodig hebt om de lengte te vinden.

public class Sample_String{
  public static void main(String[] args){  //Our sample string for this tutorial
  String str_Sample = "RockStar";
  //Length of a String
  System.out.println("Length of String: " + str_Sample.length());}}

Verwachte resultaten:

Length of String: 8

Tekenreeks “indexOf” Methode

Als ik de lengte ken, hoe kan ik dan ontdekken welk personage zich op welke positie bevindt? Kortom, hoe vind ik de index van een karakter?

Je hebt zelf geantwoord, vriend, er is een "indexOf" -methode waarmee je de locatie kunt bepalen van een specifiek teken dat je opgeeft.

public class Sample_String{
  public static void main(String[] args){//Character at position
String str_Sample = "RockStar";
System.out.println("Character at position 5: " + str_Sample.charAt(5));
//Index of a given character
System.out.println("Index of character 'S': " + str_Sample.indexOf('S'));}}

Verwachte resultaten:

Character at position 5: t
Index of character 'S': 4

String “charAt”-methode

Vergelijkbaar met de bovenstaande vraag, hoe ken ik, gegeven de index, het personage op die locatie?

Simpel weer!! Gebruik de "karakter”-methode en geef de index op waarvan u het karakter moet vinden.

public class Sample_String{
  public static void main(String[] args){//Character at position
String str_Sample = "RockStar";
System.out.println("Character at position 5: " + str_Sample.charAt(5));}}

Verwachte resultaten:

Character at position 5: t

Tekenreeks “CompareTo”-methode

Wil ik controleren of de string die door een bepaalde methode is gegenereerd gelijk is aan iets waarmee ik wil verifiëren? Hoe vergelijk ik twee snaren?

Gebruik de methode “vergelijk met' en geef de string op die u wilt vergelijken.

Gebruik “compareToIgnoreCase” als u niet wilt dat het resultaat hoofdlettergevoelig is.

Het resultaat heeft de waarde 0 als de argumentstring gelijk is aan deze string; een waarde kleiner dan 0 als deze string lexicografisch kleiner is dan het stringargument; en een waarde groter dan 0 als deze string lexicografisch groter is dan het stringargument.

public class Sample_String{
  public static void main(String[] args){//Compare to a String
String str_Sample = "RockStar";
  System.out.println("Compare To 'ROCKSTAR': " + str_Sample.compareTo("rockstar"));
  //Compare to - Ignore case
  System.out.println("Compare To 'ROCKSTAR' - Case Ignored: " + str_Sample.compareToIgnoreCase("ROCKSTAR"));}}

Verwachte resultaten:

Compare To 'ROCKSTAR': -32
Compare To 'ROCKSTAR' - Case Ignored: 0

String “Contain”-methode

Ik weet gedeeltelijk wat de string had moeten bevatten. Hoe kan ik bevestigen of de string een reeks tekens bevat die ik specificeer?

Gebruik de methode “bevat' en geef de tekens op die u moet controleren.

Retourneren waar als en slechts als deze string de opgegeven reeks char-waarden bevat.

public class Sample_String{
  public static void main(String[] args){  //Check if String contains a sequence
String str_Sample = "RockStar";
  System.out.println("Contains sequence 'tar': " + str_Sample.contains("tar"));}}

Verwachte resultaten:

Contains sequence 'tar': true

Tekenreeks “endsWith” Methode

Hoe kan ik bevestigen of een string eindigt met een bepaald achtervoegsel? Je hebt het opnieuw beantwoord. Gebruik de methode “endsWith” en specificeer het achtervoegsel in de argumenten.

Retourneren waar als de tekenreeks die door het argument wordt vertegenwoordigd een achtervoegsel is van de tekenreeks die door dit object wordt vertegenwoordigd.

public class Sample_String{
  public static void main(String[] args){  //Check if ends with a particular sequence
String str_Sample = "RockStar";
  System.out.println("EndsWith character 'r': " + str_Sample.endsWith("r"));}}

Verwachte resultaten:

EndsWith character 'r': true

Tekenreeks “replaceAll” & “replaceFirst” Methode

Ik wil mijn String op meerdere plaatsen aanpassen en meerdere delen van de String vervangen?

Java String Replace-, ReplaceAll- en ReplaceFirst-methoden. U kunt in de argumenten het deel van de tekenreeks opgeven dat u wilt vervangen, en de vervangende tekenreeks.

public class Sample_String{
  public static void main(String[] args){//Replace Rock with the word Duke
String str_Sample = "RockStar";
System.out.println("Replace 'Rock' with 'Duke': " + str_Sample.replace("Rock", "Duke"));}}

Verwachte resultaten:

Replace 'Rock' with 'Duke': DukeStar

Tekenreeks Java “tolowercase” & Java “touppercase” Methode

Ik wil dat mijn hele string in kleine letters of in hoofdletters wordt weergegeven?

Gebruik gewoon de methoden “toLowercase()” of “ToUpperCase()” voor de tekenreeksen die moeten worden geconverteerd.

public class Sample_String{
  public static void main(String[] args){//Convert to LowerCase
String str_Sample = "RockStar";
System.out.println("Convert to LowerCase: " + str_Sample.toLowerCase());
//Convert to UpperCase
System.out.println("Convert to UpperCase: " + str_Sample.toUpperCase());}}

Verwachte resultaten:

Convert to LowerCase: rockstar
Convert to UpperCase: ROCKSTAR

Belangrijke aandachtspunten:

  • String is een laatste klasse; dwz als de waarde eenmaal is gecreëerd, kan deze niet meer worden gewijzigd. String-objecten worden dus onveranderlijk genoemd.
  • De Java Virtual Machine (JVM) creëert speciaal voor Strings een geheugenlocatie genaamd String constante pool. Daarom kan String worden geïnitialiseerd zonder 'nieuw' trefwoord.
  • Stringklasse valt hieronder java.lang.String-hiërarchie. Maar het is niet nodig om deze klasse te importeren. Het Java-platform levert ze automatisch.
  • Draad verwijzing kan worden overschreven, maar daarmee wordt de inhoud niet verwijderd; dat wil zeggen, als

Tekenreeks h1 = “hallo”;

h1 = “hallo”+”wereld”;

dan wordt "hallo" String niet verwijderd. Het verliest gewoon zijn grip.

  • Meerdere referenties kan worden gebruikt voor dezelfde String, maar dat zal wel zo zijn op dezelfde plaats voorkomen; dat wil zeggen, als

Tekenreeks h1 = “hallo”;

Tekenreeks h2 = “hallo”;

Tekenreeks h3 = “hallo”;

dan wordt er slechts één pool voor String “hello” in het geheugen aangemaakt met 3 referenties-h1,h2,h3

  • Als een nummer staat vermeld in " " dan het wordt een string, geen nummer meer. Dat betekent als

String S1 =”Het nummer is: “+ “123”+”456″;

Systeem.uit.println(S1);

dan wordt afgedrukt: Het nummer is: 123456

Als de initialisatie als volgt is:

String S1 = “Het getal is: “+(123+456);

Systeem.uit.println(S1);

dan wordt afgedrukt: Het nummer is:579

Dat is alles voor Strings!