Java >> Java tutorial >  >> Tag >> String

Java toString – Hvordan bruger man det?

ToString() er en indbygget Java-metode, der returnerer en strengrepræsentation af den værdi, der sendes til den. Som et resultat vil ethvert objekt, som denne metode kaldes på, blive returneret som et strengobjekt.

String-objektet, der repræsenterer den primitive datatypeværdi, returneres, hvis metoden tager en primitiv datatype som input. Hvis metoden har to argumenter, vil det første argument blive repræsenteret som en streng i radixet fra det andet argument.

Java toString

Syntaks

Følgende er nogle af toString()'s varianter:-

String toString()
static String toString(int i)

i – refererer til en int, der vil blive returneret som en strengrepræsentation.

Værdien af ​​returneringen

toString()

toString() returnerer et String-objekt, der repræsenterer dette heltals værdi.

toString(int i)

Denne metode returnerer et String-objekt, der repræsenterer det leverede heltal. toString(int i returnerer et String-objekt, der repræsenterer det angivne heltal.

Funktionen toString() i Java har flere fordele. Vi kan returnere objektværdier uden at skrive meget kode ved at ændre toString()-metoden for Object-klassen.

Du kan finde Object-klassen i pakken java.lang. Hver klasse i Java er nedarvet, enten direkte eller indirekte, fra Object-klassen. Som et resultat er det et barn af klassen Objekt. Hvis en klasse ikke udvider en anden klasse, er den en direkte underordnet klasse af Object, og hvis den gør det, er den indirekte afledt. Som et resultat har alle Java-klasser adgang til Object-klassens metoder.

I enhver Java-applikation fungerer objektklassen som roden af ​​arvetræet.

Uden toString()-metoden er det udfordrende at forstå problemet. Lad os udforske noget grundlæggende kode, der udskriver referencer.

class Employee{  
 int empID;  
 String name;  
 String city;  
  
 Employee(int empID, String name, String city){  
 this.empID =empID;  
 this.name=name;  
 this.city=city;  
 }  
  
 public static void main(String args[]){  
   Employee empOne =new Employee(1,"Ann","Smith");  
   Employee empTwo =new Employee(2,"Mike","Dean");  
     
   System.out.println(empOne);//compiler writes here empOne.toString()  
   System.out.println(empTwo);//compiler writes here empTwo.toString()  
 }  
}  

Udskrivning af empOne og empTwo udskriver objekternes hashkodeværdier, som det ses ovenfor, men vi ønsker at offentliggøre værdierne for disse objekter. Fordi toString()-metoden kaldes internt af Java-kompileren, vil tilsidesættelse af den returnere de leverede værdier. Lad os undersøge et eksempel for at hjælpe dig med at forstå:

Lad os se på et eksempel på toString()-metoden i aktion.

class Employee{  
 int empID;  
 String name;  
 String city;  
  
 Employee(int empID, String name, String city){  
 this.empID =empID;  
 this.name=name;  
 this.city=city;  
 }  
   
 public String toString(){//overriding the toString() method  
  return empID+" "+name+" "+city;  
 }  
 public static void main(String args[]){  
   Employee empOne =new Employee(1,"Ann","Smith");  
   Employee empTwo =new Employee(2,"Mike","Dean");  
     
   System.out.println(empOne);//compiler writes here empOne.toString()  
   System.out.println(empTwo);//compiler writes here empTwo.toString()  
 }  
}  

ToString()-metoden kaldes internt af Java-kompileren i softwaren, som tidligere nævnt; tilsidesættelse af denne metode returnerer de angivne værdier for empOne- og empTwo-objekterne i Student-klassen.

Hvad er toString()-metoden, og hvordan bruger jeg den?

I Java er der to implementeringer af toString()-metoden. Den første implementering påkaldes som en metode til en objektinstans. Dette er vist i eksemplet nedenfor.

class numToString {
  public static void main( String args[] ) {   
//Creating an integer of value 25
    Integer numVal=25;
    // Calling the toString() method as a function of the Integer variable
    System.out.println( numVal.toString() );
}
}

Den anden implementering er, når værdien sendes som et argument til den relevante klasses medlemsmetode. Dette er vist i eksemplet nedenfor.

class numToString {
    public static void main( String args[] ) {
        
        // The method is called on the Double data type
       // the double value is passed  as an argument
     

        System.out.println(Double.toString(25.50));
       

        //Implementation on the Integer datatype
        System.out.println(Integer.toString(98));

        // Implementation on the Long Datatype
        System.out.println(Long.toString(54527857902316));

        // Implementation on the Booleam Datatype
        System.out.println(Boolean.toString(false));
    }
}

Det er værd at bemærke, at denne funktion kan tilsidesættes som en del af en klasse for at tilpasse sig brugerens specifikke krav. Dette er vist i eksemplet nedenfor!

class Employee{

  String name;
  Integer age;

  Employee(String n, Integer a){
    this.name=n;
    this.age=a;
  }

//Over-riding the toString() function as a class function
  public String toString(){
    return "The Employee's name is: " + this.name + ". The age of the employee is " + this.age;
  }
}

class HelloCodeunderscored {
    public static void main( String args[] ) {
      Employee newEmp = new Employee("Ann",78);

      //Calling the class version of toString()
        System.out.println(newEmp .toString());

      //Calling the original toString()
      System.out.println(Integer.toString(35));
    }
}

Vi oprettede en ny metode i Employee-klassen med samme navn som toString()-funktionen fra linje 11 til 13 i koden ovenfor. Når toString()-funktionen udløses på linje 20, bruges klasseversionen af ​​proceduren. Funktionen ændrer sig dog ikke for nogen anden datatype, som det ses på linje 22!

Eksempel:

 public class toStringExample {

   public static void main(String args[]) {
      Integer numVal = 35;

      System.out.println(numVal .toString());  
      System.out.println(Integer.toString(numVal));
   }
}

Eksempel:program, der illustrerer, hvordan toString()-metoden fungerer

// Main class
class ToStringExample {

	// defining the class Member attributes
	String name;
	int age;
	String college;
	String course;
	String address;

	// Constructor of this class
	ToStringExample(String name, int age, String college,
				String course, String address)
	{
		// This keyword refers to current instance itself
		this.name = name;
		this.age = age;
		this.college = college;
		this.course = course;
		this.address = address;
	}

	// Approach 1
	// Creating our own toString() method
	public String toString()
	{
		return name + " " + age + " " + college + " "
			+ course + " " + address;
	}

	// Approach 2
	// Main driver method
	public static void main(String[] args)
	{
		// Creating object of class inside main() method
		ToStringExample toStringExample = new ToStringExample(
			"Ann Smith", 35, "Codeunderscored School of Computing", "Java Competency",
			"Code");

		// Printing and displaying the commands needed to illustrate
		// toString() method as both will print the same
		// Print the object
		System.out.println(toStringExample);

		// Printing object but using toString() method
		System.out.println(toStringExample .toString());
	}
}

Metoden toString() tilsidesættes for meningsfuld String-repræsentation i alle wrapper-klasser, alle samlingsklasser, String-klasse, StringBuffer og StringBuilder-klasser. Som følge heraf anbefales det stærkt at tilsidesætte toString()-metoden i vores klasse.

Konklusion

Metoden toString() er tilgængelig, hvis du ønsker at udtrykke ethvert objekt som en streng. Metoden toString() returnerer objektets strengrepræsentation. Java-kompileren kalder objektets toString()-metode internt, når du udskriver et objekt. Så afhængigt af din implementering producerer tilsidesættelse af toString()-metoden det passende output, som kan være et objekts tilstand.

For at erhverve strengrepræsentationen af ​​et objekt, bruger vi normalt toString()-metoden. Læsere skal forstå, at hver gang vi forsøger at udskrive en objektreference, kaldes toString()-metoden internt. Hvis vi ikke specificerede toString()-metoden i klassen, bruges toString()-metoden for Object-klassen. Ellers bruges vores tilsidesatte eller implementerede toString()-metode.


Java tag