Example:
| "abc123" "Hello World" "Hello, what is your name ?" | 
| 
 | 
| 
 | 
The String data type is a class that is constructed using the char data type:
| 
 | 
| 
 | 
Example:
| "Hello World" | 
| 
 | 
| 
 | 
| Escape sequence | Denoted character | Example | 
|---|---|---|
| \t | Tab | "\t" (string with a TAB character) | 
| \n | New line (NL) | "\n" (string with a NL character) | 
| \\ | Backslash (\) | "\\" (string with a \) | 
| \" | Double quote (") | "\"" (string with a ") | 
| 
   public class Escape01
   {
      public static void main(String[] args)
      {
   	 System.out.println("He said \t \"Hello\" \nI said \" \\ \" \n");
      }
   }
 | 
Output:
| He said "Hello" I said " \ " | 
| 
    String  NameOfVariable ;      
 | 
Notes:
| 
 | 
| 
   public class String01
   {
      public static void main(String[] args)
      {
         String a;
    
         a = "Hello World";       // a = location of "Hello World" 
    
         System.out.println(a);   // Print the string at a
      }
   }
 | 
 
        
  
How to run the program:
| 
 | 
| 
 | 
| 
 | 
| 
 | 
|   | 
Explanation:
| 
 | 
| 
 | 
| 
 | 
|   | 
Explanation:
| 
 | 
| 
 | 
| 
 | 
| 
   public class String02
   {
      public static void main(String[] args)
      {
   	 String a;
    
   	 a = "abc";               // a = location + length of "abc"
    
   	 System.out.println(a);           // Print the string at a
   	 System.out.println(a.length());  // Print the length of the string at a    
      }
   }
 | 
 
        
  
How to run the program:
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
Answer:
| 
 | 
| 
   000...00001100
             ||
             |+--------------> 22 = 4
	     +---------------> 23 = 8
                                 -----      
			           12
 | 
On the other hand, the string "12" is stored using the Unicode scheme as:
| 00000000 00110001 (code for '1') 00000000 00110010 (code for '2') | 
Conclusion:
| 
 | 
| 
 | 
| 
   String a;
   int x;
   a = Integer.toString(x) ;    // Returns the String representation
                                // for the integer value in variable x     
 | 
| 
   String a;
   double x;
   a = Double.toString(x) ;  // Returns the String representation
                             // for the double value in variable x    
 | 
| 
   String a;
   float  x;
   a = Float.toString(x) ;   // Returns the String representation
                             // for the float value in variable x    
 | 
| 
   public class String04
   {
      public static void main(String[] args)
      {
   	 String s1, s2;     // Strings
    
   	 int    x = 12;
   	 double y = 3.1415;
    
   	 System.out.print("x + y = ");
   	 System.out.println( x + y );   // Add numbers
    
   	 s1 = Integer.toString(x);
   	 s2 = Double.toString(y);
   	 System.out.print("s1 + s2 = ");  
   	 System.out.println( s1 + s2 );   // + on String is concatenation
      }
   }
 | 
Output:
| x + y = 15.1415 s1 + s2 = 123.1415 (Concatenation of Strings !) | 
 
        
  
How to run the program:
| 
 | 
| 
 | 
Example:
| "abc" + "12" returns the string: "abc12" | 
| 
   public class String03
   {
      public static void main(String[] args)
      {
   	 String a, b, c;
    
   	 a = "abc"; 
   	 b = "12";
    
   	 c = a + b;                // String concatenation
    
   	 System.out.println("a = " + a);    // String concatenation !!     
   	 System.out.println("b = " + b);    // String concatenation !!
   	 System.out.println("c = " + c);    // String concatenation !!
      }
   }
 | 
 
        
  
How to run the program:
| 
 | 
| 
    00001100
        ||
        |+--------------> 22 = 4
	+---------------> 23 = 8
                            -----      
			      12
 | 
On the other hand, the string "12" is stored using the Unicode scheme as 2 binary numbers:
| 
     00110001     (code for '1')
     00110010     (code for '2')         
 | 
| 
 | 
| 
   String s;
   int x;
   s = Integer.toString(x) ;    // Returns the String representation
                                // for the integer value in variable x     
   x = Integer.parseInt(s) ;    // Returns the binary number representation
                                // for the numeric string in variable s     
 | 
| 
   String s;
   double x;
   s = Double.toString(x) ;     // Returns the String representation
                                // for the double value in variable x     
   x = Double.parseDouble(s) ;  // Returns the IEEE 754 double
                                // precision number representation
                                // for the numeric string in variable s     
 | 
| 
   String a;
   float  x;
   s = Float.toString(x) ;      // Returns the String representation
                                // for the float value in variable x     
   x = Float.parseFloat(s) ;    // Returns the IEEE 754 single
                                // precision number representation
                                // for the numeric string in variable s     
 | 
| 
   public class String04
   {
      public static void main(String[] args)
      {
   	 String s1, s2;     // Strings
    
   	 int    x = 12;
   	 double y = 3.1415;
    
   	 System.out.print("x + y = ");
   	 System.out.println( x + y );   // Add numbers
    
   	 s1 = Integer.toString(x);
   	 s2 = Double.toString(y);
   	 System.out.print("s1 + s2 = ");  
   	 System.out.println( s1 + s2 );   // + on String is concatenation
      }
   }
 | 
Output:
| x + y = 15.1415 s1 + s2 = 123.1415 (Concatenation of Strings !) | 
 
        
  
How to run the program:
| 
 | 
| 
 | 
Java's automatic conversion rule for number ⇒ string:
| 
 | 
| 
   public class String05
   {
      public static void main(String[] args)
      {
   	 String a, b;
   	 int    x;
    
   	 a = "abc"; 
   	 x = -12;
    
   	 b = a + x;
   	 System.out.println(b);          // Prints "abc-12"     
    
   	 b = x + a;
   	 System.out.println(b);          // Prints "-12abc"
      }
   }
 | 
Explanation:
| 
   a = "abc";
   x = -12;
   b = a + x;    is executed as follows:
                  a + x = "abc" + (-12)     convert number to string    
		        = "abc" + "-12"     concatenate 2 strings
		        = "abc-12"
   b = x + a;    is executed as follows:
                  x + a = (-12) + "abc"     convert number to string    
		        = "-12" + "abc"     concatenate 2 strings
		        = "-12abc"
 | 
 
        
  
How to run the program:
| 
 | 
| 
   public class String06
   {
      public static void main(String[] args)       
      {
   	 System.out.println( "a" + 1 + 2 );
   	 System.out.println( 1 + 2 + "a" );
      }
   }
 | 
Solution:
| 
   "a" + 1 + 2 = "a" + 1 + 2       (+ is left associative !)
               = "a" + "1" + 2     (convert 1 to "1")
               = "a1" + 2
	       = "a1" + "2"        (convert 2 to "2")
	       = "a12"
 | 
 
        
  
How to run the program:
| 
 | 
However, these operations are available as instance methods (that we will learn later)
Here, I will just give you a little taste of these operations without explaining the details
Example:
| 
                01234567890    <---- Character position     
    String s = "Hello World";
    char   x;
    x = s.charAt(0);   // x = 'H'; 
    x = s.charAt(1);   // x = 'e';
    x = s.charAt(2);   // x = 'l';        
 | 
Example:
| 
                01234567890    <---- Character position     
    String s = "Hello World";
    char   x;
    y = s.substring(0,1);   // y = "H"
    y = s.substring(2,4);   // y = "ll"
 | 
| 
   public class String07
   {
      public static void main(String[] args)
      {
   	 String s = "Hello World";
    
   	 char   x;
   	 String y;
    
   	 x = s.charAt(0); 
   	 System.out.println("s.charAt(0) = " + x);
   	 x = s.charAt(2);
   	 System.out.println("s.charAt(2) = " + x);
    
   	 y = s.substring(0,1); 
   	 System.out.println("s.substring(0,1) = " + y);       
   	 y = s.substring(2,4);
   	 System.out.println("s.substring(2,4) = " + y);
      }
   }
 | 
Output:
| s.charAt(0) = H s.charAt(2) = l s.substring(0,1) = H s.substring(2,4) = ll | 
 
        
  
How to run the program:
| 
 | 
| 
 | 
|   | 
Note: in this case, you need to use a String typed variable to store a string !!!
| 
   import java.util.Scanner;
   public class Quiz1
   {
      public static void main(String[] args)
      {
         Scanner in = new Scanner(System.in);              
         int i;
	 String s;
	 s = in.next();
	 i = Integer.parseInt();
      }
   }
 | 
What effect does these 2 highlighted statements have ?
What have you learned that does the same thing ?
| 
	 s = in.next();             // Read in a string
	 i = Integer.parseInt();    // Converts to binary number (integer)
	                            // representation
    Total effect: read in a "integer numeric string" as a binary number
    Replaced by:
          i = in.nextInt();  |