SlideShare a Scribd company logo
1 of 61
STRINGS AND STRINGS
   MANIPULATION
CONTENTS
1.   What Is String?
2.   Creating and Using Strings
       •   Declaring, Creating, Reading and Printing
1.   Manipulating Strings
       •   Comparing, Concatenating, Searching, Extracting Substrings, Splitting
1.   Other String Operations
       •   Replacing Substrings, Deleting Substrings, Changing Character Casing, Trimming
CONTENTS
5.   Building and Modifying Strings
      •   Using StringBuilder Class
5.   Formatting Strings
WHAT IS STRING?
FREQUENTLY ASKED QUESTIONS FAQ
•   What is string ?
•   Why string is final?
•   What are the ways to declare and initialize the String Object?
•   What is the difference b/w Reference values and literal strings?
•   What is the difference b/w + opretor and concat() method?
•   What is the effect when comparing strings with == and equals() ?
•   What is Difference b/w String class and String Buffer?
•   What is String pool in Java?
•   What does intern() method do in Java?
•   Why String is thread-safe in Java?
•   What is the difference b/w System.out.println(1+2+” text”) and
    System.out.println(” text”+1+2) ?
WHAT IS STRING?
•   String is:
     • A sequence of characters
     • Each character is a Unicode character
     • Represented by the String (java.lang.String) data type in Java
     • Example:




       String s = "Hello, Java";


         s          H    e    l    l    o      ,   J   a   v   a
JAVA.LANG.STRING
•   We use java.lang.String to work with strings in Java
•   String objects contain an immutable (read-only) sequence of characters
•   Use Unicode in order to support multiple languages and alphabets
•   Stores strings in the dynamic memory (managed heap)
•   java.lang.String is class
     • It is reference type
JAVA.LANG.STRING
•   String objects are like arrays of characters (char[])
     • Have fixed length (String.length())
     • Elements can be accessed by index
           • Using charAt() method
           • The index is in the range 0...length()-1


       String s = "Hello!";
       int len = s.length(); // len = 6
       char ch = s.charAt(1); // ch = 'e‘`


                          index =           0     1     2   3   4   5
       s.charAt(index) =                    H     e     l   l   o   !
STRINGS – FIRST EXAMPLE

String s = "Stand up, stand up, Balkan superman.";

System.out.printf("s = "%s"%n", s);
System.out.printf("s.length() = %d%n", s.length());

for (int i = 0; i < s.length(); i++) {
  System.out.printf("s[%d] = %c%n", i, s.charAt(i));
}
STRINGS – FIRST EXAMPLE
         Live Demo
Creating and Using Strings

    Declaring, Creating, Reading and Printing
DECLARING STRINGS
•   We use Java String class for declaring string variables:




      String str;
CREATING STRINGS
•   Before initializing a string variable is equal to null
•   Strings can be initialized by:
     • Assigning a string literal to the string variable
     • Assigning the value of another string variable
     • Assigning the result of operation of type string
CREATING STRINGS (2)
•   Not initialized variables has value of null

    String s; // s is equal to null
•   Assigning a string literal
    String s = "I am string literal!";
•   Assigning another string variable

    String s2 = s;
•   Assigning the result of string operation

    String s = "I'm " + 42 + " years old.";
READING AND PRINTING STRINGS
•       Reading strings from the console
         • Use the method input.nextLine()

         String s = input.nextLine();

    •      Printng Strings to the console
    •      Use methods print() and println()


         System.out.print("Please enter your name: ");
         String name = input.nextLine();
         System.out.printf("Hello, %s!%n", name);
Reading and
Printing Strings
     Live Demo
MANIPULATING STRINGS
Comparing, Concatenating, Searching, Extracting Substrings, Splitting
COMPARING STRINGS
•   There are a number of ways to compare two strings:
     • Dictionary-based string comparison
          • Case-insensitive

    int result = str1.compareToIgnoreCase(str2);
    // result == 0 if str1 equals str2
    // result < 0 if str1 if before str2
    // result > 0 if str1 if after str2

          • Case-sensitive

    str1.compareTo(str2);
COMPARING STRINGS (2)
•   Equality checking by equalsIgnoreCase()
     • Performs case-insensitive compare
     • Returns boolean value

     if (str1.equalsIgnoreCase(str2)){
         …
     }

•   The case-sensitive equals() method

      if (str1.equals(str2)){
          …
      }
COMPARING STRINGS (3)
•   Operators == and != does not check for equality!
•   These operators returns boolean value, but check if the addresses of the object are equal
•   Use equals() and equalsIgnoreCase() instead
    String str1 = new String("Hello");
    String str2 = str1;
    System.out.println((str1==str2)); // true

    String str1 = "Hello";
    String str2 = "Hello";
    System.out.println((str1==str2)); // true!!!

    String str1 = new String("Hello");
    String str2 = new String("Hello");
    System.out.println((str1==str2)); // This is false!
COMPARING STRINGS – EXAMPLE
•   Finding the first in a lexicographical order string from a given list of strings


String[] towns = {“Jamshoro", “hyderabad",
“Qasimabad",
      “Latifabad", “Kotri", “Heerabad"};
String firstTown = towns[0];
for (int i=1; i<towns.length; i++) {
    String currentTown = towns[i];
    if (currentTown.compareTo(firstTown) < 0) {
        firstTown = currentTown;
    }
}
System.out.println("First town: " + firstTown);
COMPARING STRINGS
      Live Demo
CONCATENATING STRINGS
•   There are two ways to combine strings:
     • Using the concat() method

       String str = str1.concat(str2);
     • Using the + or the += operator
       String str = str1 + str2 + str3;
       String str += str1;
•   Any object can be appended to string
       String name = "Peter";
       int age = 22;
       String s = name + " " + age; //  "Peter 22"
CONCATENATING STRINGS – EXAMPLE
 String firstName = "Svetlin";
 String lastName = "Nakov";

 String fullName = firstName + " " + lastName;
 System.out.println(fullName);

 int age = 26;

 String nameAndAge = "Name: " + fullName +
                     "nAge: " + age;
 System.out.println(nameAndAge);
 // Name: Svetlin Nakov
 // Age: 26
CONCATENATING STRINGS
        Live Demo
SEARCHING STRINGS
•   Finding a character or substring within given string
     • First occurrence

       indexOf(String str)
     • First occurrence starting at given position
       indexOf(String str, int fromIndex)
     • Last occurrence
       lastIndexOf(String)

     • Last occurrence before given position
       lastIndexOf(String, int fromIndex)
SEARCHING STRINGS – EXAMPLE
 String str = "Java Programming Course";

 int index = str.indexOf("Java"); // index = 0
 index = str.indexOf("Course"); // index = 17
 index = str.indexOf("COURSE"); // index = -1
 // indexOf is case sensetive. -1 means not found
 index = str.indexOf("ram"); // index = 9
 index = str.indexOf("r"); // index = 6
 index = str.indexOf("r", 7); // index = 9
 index = str.indexOf("r", 10); // index = 20


         i =    0   1   2   3   4   5   6   7   8   9   10 11 12   …

s.charAt(i) =   J a v a             P r o g r a m m …
SEARCHING STRINGS
      Live Demo
EXTRACTING SUBSTRINGS
•       Extracting substrings
         • str.substring(int beginIndex, int endIndex)
               • lastIndex is not included
        String filename = "C:PicsRila2005.jpg";
        String name = filename.substring(8, 16);
        // name is Rila2005
         • str.substring(int beginIndex)
        String filename = "C:PicsSummer2005.jpg";
        String nameAndExtension = filename.substring(8);
        // nameAndExtension is Rila2005.jpg

    0      1    2    3     4    5    6    7    8    9    10 11 12 13 14 15 16 17 18 19

    C :  P i c s  R i l a 2 0 0 5 . j p g
EXTRACTING SUBSTRINGS
        Live Demo
SPLITTING STRINGS
•   To split a string by given separator(s) use the following method:

    String[] split(String regex)
• String regex – String with special format
•   We can list the character which we want to use for separator in square brackets […]

    String[] parts = "Ivan; Petar,Gosho".split("[;,]");
    // this wil separate the stirng into three parts
    // "Ivan", " Petar" and "Gosho"
SPLITTING STRINGS - EXAMPLE
 String listOfBeers =
             "Amstel, Zagorka, Tuborg, Becks.";
 String[] beers = listOfBeers.split("[ ,.]");
 System.out.println("Available beers are:");
 for (String beer : beers) {
       if (!"".equalsIgnoreCase(beer)) {
             System.out.println(beer);
       }
 }
SPLITTING STRINGS
      Live Demo
OTHER STRING OPERATIONS
  Replacing Substrings, Changing Character Casing, Trimming
REPLACING SUBSTRINGS
•   replace(String, String) – replaces all occurrences of given string with another
     •   The result is new string (strings are immutable)


     String cocktail = "Vodka + Martini + Cherry";
     String replaced = cocktail.replace("+", "and");
     // Vodka and Martini and Cherry
CHANGING CHARACTER CASING
•   Using method toLowerCase()

String alpha = "aBcDeFg";
String lowerAlpha = alpha.toLowerCase(); // abcdefg
System.out.println(lowerAlpha);

•   Using method toUpperCase()

String alpha = "aBcDeFg";
String upperAlpha = alpha.toUpperCase(); // ABCDEFG
System.out.println(upperAlpha);
TRIMMING WHITE SPACE
•   Using method trim()


    String s = "    example of white space   ";
    String clean = s.trim();
    System.out.println(clean);
OTHER STRING OPERATIONS
         Live Demo
BUILDING AND MODIFYING
       STRINGS
      Using StringBuilder Class
CONSTRUCTING STRINGS
•   Strings are immutable
     • concat(), replace(), trim(), ... return new string, do not modify the old one
•   Do not use "+" for strings in a loop!
     • It runs very inefficiently!

     public static string dupChar(char ch, int count){
         String result = "";
         for (int i=0; i<count; i++)
             result += ch;
         return result;
     }                           Bad practice.
                                 Avoid this!
CHANGING THE CONTENTS OF A STRING
    – STRINGBUILDER
•   Use the java.lang.StringBuilder class for modifiable strings of characters:
•   Use StringBuilder if you need to keep adding characters to a string



    public static String reverseIt(String s) {
        StringBuilder sb = new StringBuilder();
        for (int i = s.length()-1; i >= 0; i--)
            sb.append(s.charAt(i));
        return sb.ToString();
    }
THE STRINGBUILDER CLASS
                                                        Capacity


    StringBuilder: H e                 l    l   o   ,    J a v a           !

    length() = 11
    capacity() = 15                        used buffer                         unused
                                           (length())                          buffer

•   StringBuilder keeps a buffer memory, allocated in advance
     • Most operations use the buffer memory and do not allocate new objects
THE STRINGBUILDER CLASS (2)
•   StringBuilder(int capacity) constructor allocates in advance buffer memory of
    a given size
     • By default 16 characters are allocated
•   capacity() holds the currently allocated space (in characters)
•   charAt(int index) gives access to the char value at given position
•   length() hold the length of the string in the buffer
THE STRINGBUILDER CLASS (3)
•   append(…) appends string or other object after the last character in the buffer
•   delete(int start, int end) removes the characters in given range
•   insert(int offset, String str) inserts given string (or object) at given
    position
•   replace(int start, int end, String str) replaces all
    occurrences of a substring with given string
•   toString() converts the StringBuilder to String object
STRINGBUILDER – EXAMPLE
•   Extracting all capital letters from a string

    public static String extractCapitals(String s) {
      StringBuilder result = new StringBuilder();
      for (int i = 0; i < s.length(); i++) {
        char ch = s.charAt(i);
        if (Character.isUpperCase(ch)) {
          result.append(ch);
        }
      }
      return result.toString();
    }
HOW THE + OPERATOR DOES STRING
    CONCATENATIONS?
•   Consider following string concatenation:

          String result = str1 + str2;
•   It is equivalent to this code:

          StringBuffer sb = new StringBuffer();
          sb.append(str1);
          sb.append(str2);
          String result = sb.toString();

•   Actually several new objects are created and leaved to the garbage collector
      •     What happens when using + in a loop?
USING STRINGBUILDER
       Live Demo
FORMATTING STRINGS
Using toString() and String.format()
METHOD TOSTRING()
•   All classes have this public virtual method
     • Returns a human-readable, culture-sensitive string representing the object
     • Most Java Platform types have own implementation of toString()
METHOD STRING.FORMAT()
•   Applies templates for formatting strings
     • Placeholders are used for dynamic text
     • Like System.out.printf(…)
    String template = "If I were %s, I would %s.";
    String sentence1 = String.format(
                template, "developer", "know Java");
    System.out.println(sentence1);
    // If I were developer, I would know Java.

    String sentence2 = String.format(
             template, "elephant", "weigh 4500 kg");
    System.out.println(sentence2);
    // If I were elephant, I would weigh 4500 kg.
FORMATTING DATES
•   When we print Dates we use prefix t or T
     • d, e – day (with/without leading zero)
     • m – month
     • y, Y – year (2 or 4 digits)
     • H, M, S – hour, minute, second


Date now = (new GregorianCalendar()).getTime();
System.out.printf("Now is " +
      "%1$td.%1$tm.%1$tY %1$tH:%1$tM:%1$tS", now);
// Now is 23.05.2006 21:09:32
FORMATTING STRINGS
       Live Demo
EXERCISES
 Write a program that reads a string, reverses it and prints it on the console. Example:
    "sample"  "elpmas".




 Write a program to check if in a given expression the brackets are put correctly. Example
    of correct expression: ((a+b)/5-d). Example of incorrect expression: )(a+b)).
     Write a program that finds how many times a substring is contained in a given text (perform
      case insensitive search).
Example: The target substring is "in". The text is as follows:



        We are living in a yellow submarine. We don't
        have anything else. Inside the submarine is
        very tight. So we are drinking all the day.
        We will move out of it in 5 days.

    The result is: 9.
 You are given a text. Write a program that changes the text in all regions identified by the tags
    <upcase> and </upcase> to uppercase. The tags cannot be nested. Example:

      We are living in a <upcase>yellow
      submarine</upcase>. We don't have
      <upcase>anything</upcase> else.


    The expected result:

       We are living in a YELLOW SUBMARINE. We don't
       have ANYTHING else.
 Write a program that parses an URL address given in the format:


       [protocol]://[server]/[resource]


   and extracts from it the [protocol], [server] and [resource] elements. For example from the URL
   http://www.devbg.org/forum/index.php following information should be extracted: [protocol] =
   "http", [server] = "www.devbg.org", [resource] = "/forum/index.php"
 Write a program that extracts from a given text all the sentences that contain given word.
    Example: The word is "in". The text is:

       We are living in a yellow submarine. We don't
       have anything else. Inside the submarine is
       very tight. So we are drinking all the day.
       We will move out of it in 5 days.

    The expected result is:

       We are living in a yellow submarine.
       We will move out of it in 5 days.

Consider that the sentences are separated by "." and the words – by non-letter symbols.
 We are given a string containing a list of forbidden words and a text containing some of these
    words. Write a program that replaces the forbidden words with asterisks. Example:

       Microsoft announced its next generation Java
       compiler today. It uses advanced parser and
       special optimizer for the Microsoft JVM.

    Words: "Java, JVM, Microsoft"
    The expected result:

       ********* announced its next generation ****
       compiler today. It uses advanced parser and
       special optimizer for the ********* ***.
 Write a program that reads a string from the console and lists all the different letters in the string
    along with information how many times each letter is found.




 Write a program that reads a string from the console and lists all the different words in the string
    with information how many times each word is found.




 Write a program that reads a string from the console and replaces all series of consecutive identical
    letters with a single one. Example: "aaaaabbbbbcdddeeeedssaa" -> "abcdedsa".
 Write a program that reads a list of words, separated by spaces (' ') , and prints the list in
    an alphabetical order.




 Write a program that lets the user input a string of maximum 20 characters. If the length
    of the string is less, the rest of the characters should be filled with '*'. Print the string into
    the console.

More Related Content

What's hot

Front end fundamentals session 1: javascript core
Front end fundamentals session 1: javascript coreFront end fundamentals session 1: javascript core
Front end fundamentals session 1: javascript coreWeb Zhao
 
First-Class Patterns
First-Class PatternsFirst-Class Patterns
First-Class PatternsJohn De Goes
 
Swift Rocks #2: Going functional
Swift Rocks #2: Going functionalSwift Rocks #2: Going functional
Swift Rocks #2: Going functionalHackraft
 
Swift rocks! #1
Swift rocks! #1Swift rocks! #1
Swift rocks! #1Hackraft
 
A limited guide to intermediate and advanced Ruby
A limited guide to intermediate and advanced RubyA limited guide to intermediate and advanced Ruby
A limited guide to intermediate and advanced RubyVysakh Sreenivasan
 
Quark: A Purely-Functional Scala DSL for Data Processing & Analytics
Quark: A Purely-Functional Scala DSL for Data Processing & AnalyticsQuark: A Purely-Functional Scala DSL for Data Processing & Analytics
Quark: A Purely-Functional Scala DSL for Data Processing & AnalyticsJohn De Goes
 
Few simple-type-tricks in scala
Few simple-type-tricks in scalaFew simple-type-tricks in scala
Few simple-type-tricks in scalaRuslan Shevchenko
 
OSCON Presentation: Developing High Performance Websites and Modern Apps with...
OSCON Presentation: Developing High Performance Websites and Modern Apps with...OSCON Presentation: Developing High Performance Websites and Modern Apps with...
OSCON Presentation: Developing High Performance Websites and Modern Apps with...Doris Chen
 
Introduction To Scala
Introduction To ScalaIntroduction To Scala
Introduction To ScalaPeter Maas
 

What's hot (20)

Front end fundamentals session 1: javascript core
Front end fundamentals session 1: javascript coreFront end fundamentals session 1: javascript core
Front end fundamentals session 1: javascript core
 
Scala jargon cheatsheet
Scala jargon cheatsheetScala jargon cheatsheet
Scala jargon cheatsheet
 
Ruby Programming Assignment Help
Ruby Programming Assignment HelpRuby Programming Assignment Help
Ruby Programming Assignment Help
 
Scala cheatsheet
Scala cheatsheetScala cheatsheet
Scala cheatsheet
 
First-Class Patterns
First-Class PatternsFirst-Class Patterns
First-Class Patterns
 
Swift Rocks #2: Going functional
Swift Rocks #2: Going functionalSwift Rocks #2: Going functional
Swift Rocks #2: Going functional
 
Cheat Sheet java
Cheat Sheet javaCheat Sheet java
Cheat Sheet java
 
Swift rocks! #1
Swift rocks! #1Swift rocks! #1
Swift rocks! #1
 
A limited guide to intermediate and advanced Ruby
A limited guide to intermediate and advanced RubyA limited guide to intermediate and advanced Ruby
A limited guide to intermediate and advanced Ruby
 
Scala: A brief tutorial
Scala: A brief tutorialScala: A brief tutorial
Scala: A brief tutorial
 
Scala Paradigms
Scala ParadigmsScala Paradigms
Scala Paradigms
 
Quark: A Purely-Functional Scala DSL for Data Processing & Analytics
Quark: A Purely-Functional Scala DSL for Data Processing & AnalyticsQuark: A Purely-Functional Scala DSL for Data Processing & Analytics
Quark: A Purely-Functional Scala DSL for Data Processing & Analytics
 
Core C#
Core C#Core C#
Core C#
 
Scala for curious
Scala for curiousScala for curious
Scala for curious
 
Scala - brief intro
Scala - brief introScala - brief intro
Scala - brief intro
 
Java Performance MythBusters
Java Performance MythBustersJava Performance MythBusters
Java Performance MythBusters
 
Few simple-type-tricks in scala
Few simple-type-tricks in scalaFew simple-type-tricks in scala
Few simple-type-tricks in scala
 
OSCON Presentation: Developing High Performance Websites and Modern Apps with...
OSCON Presentation: Developing High Performance Websites and Modern Apps with...OSCON Presentation: Developing High Performance Websites and Modern Apps with...
OSCON Presentation: Developing High Performance Websites and Modern Apps with...
 
Introduction To Scala
Introduction To ScalaIntroduction To Scala
Introduction To Scala
 
Why Haskell
Why HaskellWhy Haskell
Why Haskell
 

Similar to String and string manipulation

16 strings-and-text-processing-120712074956-phpapp02
16 strings-and-text-processing-120712074956-phpapp0216 strings-and-text-processing-120712074956-phpapp02
16 strings-and-text-processing-120712074956-phpapp02Abdul Samee
 
L13 string handling(string class)
L13 string handling(string class)L13 string handling(string class)
L13 string handling(string class)teach4uin
 
13 Strings and Text Processing
13 Strings and Text Processing13 Strings and Text Processing
13 Strings and Text ProcessingIntro C# Book
 
13 Strings and text processing
13 Strings and text processing13 Strings and text processing
13 Strings and text processingmaznabili
 
0-Slot21-22-Strings.pdf
0-Slot21-22-Strings.pdf0-Slot21-22-Strings.pdf
0-Slot21-22-Strings.pdfssusere19c741
 
Introduction to Java Strings, By Kavita Ganesan
Introduction to Java Strings, By Kavita GanesanIntroduction to Java Strings, By Kavita Ganesan
Introduction to Java Strings, By Kavita GanesanKavita Ganesan
 
String classes and its methods.20
String classes and its methods.20String classes and its methods.20
String classes and its methods.20myrajendra
 
Arrays string handling java packages
Arrays string handling java packagesArrays string handling java packages
Arrays string handling java packagesSardar Alam
 
String and string buffer
String and string bufferString and string buffer
String and string bufferkamal kotecha
 
Text processing
Text processingText processing
Text processingIcancode
 
CPSTRINGSARGAVISTRINGS.PPT
CPSTRINGSARGAVISTRINGS.PPTCPSTRINGSARGAVISTRINGS.PPT
CPSTRINGSARGAVISTRINGS.PPTSasideepa
 
BHARGAVISTRINGS.PPT
BHARGAVISTRINGS.PPTBHARGAVISTRINGS.PPT
BHARGAVISTRINGS.PPTSasideepa
 
Operation on string presentation
Operation on string presentationOperation on string presentation
Operation on string presentationAliul Kadir Akib
 

Similar to String and string manipulation (20)

16 strings-and-text-processing-120712074956-phpapp02
16 strings-and-text-processing-120712074956-phpapp0216 strings-and-text-processing-120712074956-phpapp02
16 strings-and-text-processing-120712074956-phpapp02
 
L13 string handling(string class)
L13 string handling(string class)L13 string handling(string class)
L13 string handling(string class)
 
Strings v.1.1
Strings v.1.1Strings v.1.1
Strings v.1.1
 
13 Strings and Text Processing
13 Strings and Text Processing13 Strings and Text Processing
13 Strings and Text Processing
 
13 Strings and text processing
13 Strings and text processing13 Strings and text processing
13 Strings and text processing
 
0-Slot21-22-Strings.pdf
0-Slot21-22-Strings.pdf0-Slot21-22-Strings.pdf
0-Slot21-22-Strings.pdf
 
Introduction to Java Strings, By Kavita Ganesan
Introduction to Java Strings, By Kavita GanesanIntroduction to Java Strings, By Kavita Ganesan
Introduction to Java Strings, By Kavita Ganesan
 
Java String Handling
Java String HandlingJava String Handling
Java String Handling
 
Strings in java
Strings in javaStrings in java
Strings in java
 
String classes and its methods.20
String classes and its methods.20String classes and its methods.20
String classes and its methods.20
 
Arrays string handling java packages
Arrays string handling java packagesArrays string handling java packages
Arrays string handling java packages
 
Team 1
Team 1Team 1
Team 1
 
String slide
String slideString slide
String slide
 
String and string buffer
String and string bufferString and string buffer
String and string buffer
 
07slide
07slide07slide
07slide
 
Text processing
Text processingText processing
Text processing
 
CPSTRINGSARGAVISTRINGS.PPT
CPSTRINGSARGAVISTRINGS.PPTCPSTRINGSARGAVISTRINGS.PPT
CPSTRINGSARGAVISTRINGS.PPT
 
BHARGAVISTRINGS.PPT
BHARGAVISTRINGS.PPTBHARGAVISTRINGS.PPT
BHARGAVISTRINGS.PPT
 
Strings CPU GTU
Strings CPU GTUStrings CPU GTU
Strings CPU GTU
 
Operation on string presentation
Operation on string presentationOperation on string presentation
Operation on string presentation
 

Recently uploaded

Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxcallscotland1987
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfNirmal Dwivedi
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the ClassroomPooky Knightsmith
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin ClassesCeline George
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - Englishneillewis46
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...pradhanghanshyam7136
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseAnaAcapella
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and ModificationsMJDuyan
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentationcamerronhm
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Association for Project Management
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024Elizabeth Walsh
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibitjbellavia9
 

Recently uploaded (20)

Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 

String and string manipulation

  • 1.
  • 2. STRINGS AND STRINGS MANIPULATION
  • 3. CONTENTS 1. What Is String? 2. Creating and Using Strings • Declaring, Creating, Reading and Printing 1. Manipulating Strings • Comparing, Concatenating, Searching, Extracting Substrings, Splitting 1. Other String Operations • Replacing Substrings, Deleting Substrings, Changing Character Casing, Trimming
  • 4. CONTENTS 5. Building and Modifying Strings • Using StringBuilder Class 5. Formatting Strings
  • 6. FREQUENTLY ASKED QUESTIONS FAQ • What is string ? • Why string is final? • What are the ways to declare and initialize the String Object? • What is the difference b/w Reference values and literal strings? • What is the difference b/w + opretor and concat() method? • What is the effect when comparing strings with == and equals() ? • What is Difference b/w String class and String Buffer? • What is String pool in Java? • What does intern() method do in Java? • Why String is thread-safe in Java? • What is the difference b/w System.out.println(1+2+” text”) and System.out.println(” text”+1+2) ?
  • 7. WHAT IS STRING? • String is: • A sequence of characters • Each character is a Unicode character • Represented by the String (java.lang.String) data type in Java • Example: String s = "Hello, Java"; s H e l l o , J a v a
  • 8. JAVA.LANG.STRING • We use java.lang.String to work with strings in Java • String objects contain an immutable (read-only) sequence of characters • Use Unicode in order to support multiple languages and alphabets • Stores strings in the dynamic memory (managed heap) • java.lang.String is class • It is reference type
  • 9. JAVA.LANG.STRING • String objects are like arrays of characters (char[]) • Have fixed length (String.length()) • Elements can be accessed by index • Using charAt() method • The index is in the range 0...length()-1 String s = "Hello!"; int len = s.length(); // len = 6 char ch = s.charAt(1); // ch = 'e‘` index = 0 1 2 3 4 5 s.charAt(index) = H e l l o !
  • 10. STRINGS – FIRST EXAMPLE String s = "Stand up, stand up, Balkan superman."; System.out.printf("s = "%s"%n", s); System.out.printf("s.length() = %d%n", s.length()); for (int i = 0; i < s.length(); i++) { System.out.printf("s[%d] = %c%n", i, s.charAt(i)); }
  • 11. STRINGS – FIRST EXAMPLE Live Demo
  • 12. Creating and Using Strings Declaring, Creating, Reading and Printing
  • 13. DECLARING STRINGS • We use Java String class for declaring string variables: String str;
  • 14. CREATING STRINGS • Before initializing a string variable is equal to null • Strings can be initialized by: • Assigning a string literal to the string variable • Assigning the value of another string variable • Assigning the result of operation of type string
  • 15. CREATING STRINGS (2) • Not initialized variables has value of null String s; // s is equal to null • Assigning a string literal String s = "I am string literal!"; • Assigning another string variable String s2 = s; • Assigning the result of string operation String s = "I'm " + 42 + " years old.";
  • 16. READING AND PRINTING STRINGS • Reading strings from the console • Use the method input.nextLine() String s = input.nextLine(); • Printng Strings to the console • Use methods print() and println() System.out.print("Please enter your name: "); String name = input.nextLine(); System.out.printf("Hello, %s!%n", name);
  • 18. MANIPULATING STRINGS Comparing, Concatenating, Searching, Extracting Substrings, Splitting
  • 19. COMPARING STRINGS • There are a number of ways to compare two strings: • Dictionary-based string comparison • Case-insensitive int result = str1.compareToIgnoreCase(str2); // result == 0 if str1 equals str2 // result < 0 if str1 if before str2 // result > 0 if str1 if after str2 • Case-sensitive str1.compareTo(str2);
  • 20. COMPARING STRINGS (2) • Equality checking by equalsIgnoreCase() • Performs case-insensitive compare • Returns boolean value if (str1.equalsIgnoreCase(str2)){ … } • The case-sensitive equals() method if (str1.equals(str2)){ … }
  • 21. COMPARING STRINGS (3) • Operators == and != does not check for equality! • These operators returns boolean value, but check if the addresses of the object are equal • Use equals() and equalsIgnoreCase() instead String str1 = new String("Hello"); String str2 = str1; System.out.println((str1==str2)); // true String str1 = "Hello"; String str2 = "Hello"; System.out.println((str1==str2)); // true!!! String str1 = new String("Hello"); String str2 = new String("Hello"); System.out.println((str1==str2)); // This is false!
  • 22. COMPARING STRINGS – EXAMPLE • Finding the first in a lexicographical order string from a given list of strings String[] towns = {“Jamshoro", “hyderabad", “Qasimabad", “Latifabad", “Kotri", “Heerabad"}; String firstTown = towns[0]; for (int i=1; i<towns.length; i++) { String currentTown = towns[i]; if (currentTown.compareTo(firstTown) < 0) { firstTown = currentTown; } } System.out.println("First town: " + firstTown);
  • 23. COMPARING STRINGS Live Demo
  • 24. CONCATENATING STRINGS • There are two ways to combine strings: • Using the concat() method String str = str1.concat(str2); • Using the + or the += operator String str = str1 + str2 + str3; String str += str1; • Any object can be appended to string String name = "Peter"; int age = 22; String s = name + " " + age; //  "Peter 22"
  • 25. CONCATENATING STRINGS – EXAMPLE String firstName = "Svetlin"; String lastName = "Nakov"; String fullName = firstName + " " + lastName; System.out.println(fullName); int age = 26; String nameAndAge = "Name: " + fullName + "nAge: " + age; System.out.println(nameAndAge); // Name: Svetlin Nakov // Age: 26
  • 27. SEARCHING STRINGS • Finding a character or substring within given string • First occurrence indexOf(String str) • First occurrence starting at given position indexOf(String str, int fromIndex) • Last occurrence lastIndexOf(String) • Last occurrence before given position lastIndexOf(String, int fromIndex)
  • 28. SEARCHING STRINGS – EXAMPLE String str = "Java Programming Course"; int index = str.indexOf("Java"); // index = 0 index = str.indexOf("Course"); // index = 17 index = str.indexOf("COURSE"); // index = -1 // indexOf is case sensetive. -1 means not found index = str.indexOf("ram"); // index = 9 index = str.indexOf("r"); // index = 6 index = str.indexOf("r", 7); // index = 9 index = str.indexOf("r", 10); // index = 20 i = 0 1 2 3 4 5 6 7 8 9 10 11 12 … s.charAt(i) = J a v a P r o g r a m m …
  • 29. SEARCHING STRINGS Live Demo
  • 30. EXTRACTING SUBSTRINGS • Extracting substrings • str.substring(int beginIndex, int endIndex) • lastIndex is not included String filename = "C:PicsRila2005.jpg"; String name = filename.substring(8, 16); // name is Rila2005 • str.substring(int beginIndex) String filename = "C:PicsSummer2005.jpg"; String nameAndExtension = filename.substring(8); // nameAndExtension is Rila2005.jpg 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 C : P i c s R i l a 2 0 0 5 . j p g
  • 32. SPLITTING STRINGS • To split a string by given separator(s) use the following method: String[] split(String regex) • String regex – String with special format • We can list the character which we want to use for separator in square brackets […] String[] parts = "Ivan; Petar,Gosho".split("[;,]"); // this wil separate the stirng into three parts // "Ivan", " Petar" and "Gosho"
  • 33. SPLITTING STRINGS - EXAMPLE String listOfBeers = "Amstel, Zagorka, Tuborg, Becks."; String[] beers = listOfBeers.split("[ ,.]"); System.out.println("Available beers are:"); for (String beer : beers) { if (!"".equalsIgnoreCase(beer)) { System.out.println(beer); } }
  • 34. SPLITTING STRINGS Live Demo
  • 35. OTHER STRING OPERATIONS Replacing Substrings, Changing Character Casing, Trimming
  • 36. REPLACING SUBSTRINGS • replace(String, String) – replaces all occurrences of given string with another • The result is new string (strings are immutable) String cocktail = "Vodka + Martini + Cherry"; String replaced = cocktail.replace("+", "and"); // Vodka and Martini and Cherry
  • 37. CHANGING CHARACTER CASING • Using method toLowerCase() String alpha = "aBcDeFg"; String lowerAlpha = alpha.toLowerCase(); // abcdefg System.out.println(lowerAlpha); • Using method toUpperCase() String alpha = "aBcDeFg"; String upperAlpha = alpha.toUpperCase(); // ABCDEFG System.out.println(upperAlpha);
  • 38. TRIMMING WHITE SPACE • Using method trim() String s = " example of white space "; String clean = s.trim(); System.out.println(clean);
  • 40. BUILDING AND MODIFYING STRINGS Using StringBuilder Class
  • 41. CONSTRUCTING STRINGS • Strings are immutable • concat(), replace(), trim(), ... return new string, do not modify the old one • Do not use "+" for strings in a loop! • It runs very inefficiently! public static string dupChar(char ch, int count){ String result = ""; for (int i=0; i<count; i++) result += ch; return result; } Bad practice. Avoid this!
  • 42. CHANGING THE CONTENTS OF A STRING – STRINGBUILDER • Use the java.lang.StringBuilder class for modifiable strings of characters: • Use StringBuilder if you need to keep adding characters to a string public static String reverseIt(String s) { StringBuilder sb = new StringBuilder(); for (int i = s.length()-1; i >= 0; i--) sb.append(s.charAt(i)); return sb.ToString(); }
  • 43. THE STRINGBUILDER CLASS Capacity StringBuilder: H e l l o , J a v a ! length() = 11 capacity() = 15 used buffer unused (length()) buffer • StringBuilder keeps a buffer memory, allocated in advance • Most operations use the buffer memory and do not allocate new objects
  • 44. THE STRINGBUILDER CLASS (2) • StringBuilder(int capacity) constructor allocates in advance buffer memory of a given size • By default 16 characters are allocated • capacity() holds the currently allocated space (in characters) • charAt(int index) gives access to the char value at given position • length() hold the length of the string in the buffer
  • 45. THE STRINGBUILDER CLASS (3) • append(…) appends string or other object after the last character in the buffer • delete(int start, int end) removes the characters in given range • insert(int offset, String str) inserts given string (or object) at given position • replace(int start, int end, String str) replaces all occurrences of a substring with given string • toString() converts the StringBuilder to String object
  • 46. STRINGBUILDER – EXAMPLE • Extracting all capital letters from a string public static String extractCapitals(String s) { StringBuilder result = new StringBuilder(); for (int i = 0; i < s.length(); i++) { char ch = s.charAt(i); if (Character.isUpperCase(ch)) { result.append(ch); } } return result.toString(); }
  • 47. HOW THE + OPERATOR DOES STRING CONCATENATIONS? • Consider following string concatenation: String result = str1 + str2; • It is equivalent to this code: StringBuffer sb = new StringBuffer(); sb.append(str1); sb.append(str2); String result = sb.toString(); • Actually several new objects are created and leaved to the garbage collector • What happens when using + in a loop?
  • 48. USING STRINGBUILDER Live Demo
  • 49. FORMATTING STRINGS Using toString() and String.format()
  • 50. METHOD TOSTRING() • All classes have this public virtual method • Returns a human-readable, culture-sensitive string representing the object • Most Java Platform types have own implementation of toString()
  • 51. METHOD STRING.FORMAT() • Applies templates for formatting strings • Placeholders are used for dynamic text • Like System.out.printf(…) String template = "If I were %s, I would %s."; String sentence1 = String.format( template, "developer", "know Java"); System.out.println(sentence1); // If I were developer, I would know Java. String sentence2 = String.format( template, "elephant", "weigh 4500 kg"); System.out.println(sentence2); // If I were elephant, I would weigh 4500 kg.
  • 52. FORMATTING DATES • When we print Dates we use prefix t or T • d, e – day (with/without leading zero) • m – month • y, Y – year (2 or 4 digits) • H, M, S – hour, minute, second Date now = (new GregorianCalendar()).getTime(); System.out.printf("Now is " + "%1$td.%1$tm.%1$tY %1$tH:%1$tM:%1$tS", now); // Now is 23.05.2006 21:09:32
  • 53. FORMATTING STRINGS Live Demo
  • 54. EXERCISES  Write a program that reads a string, reverses it and prints it on the console. Example: "sample"  "elpmas".  Write a program to check if in a given expression the brackets are put correctly. Example of correct expression: ((a+b)/5-d). Example of incorrect expression: )(a+b)).
  • 55. Write a program that finds how many times a substring is contained in a given text (perform case insensitive search). Example: The target substring is "in". The text is as follows: We are living in a yellow submarine. We don't have anything else. Inside the submarine is very tight. So we are drinking all the day. We will move out of it in 5 days. The result is: 9.
  • 56.  You are given a text. Write a program that changes the text in all regions identified by the tags <upcase> and </upcase> to uppercase. The tags cannot be nested. Example: We are living in a <upcase>yellow submarine</upcase>. We don't have <upcase>anything</upcase> else. The expected result: We are living in a YELLOW SUBMARINE. We don't have ANYTHING else.
  • 57.  Write a program that parses an URL address given in the format: [protocol]://[server]/[resource] and extracts from it the [protocol], [server] and [resource] elements. For example from the URL http://www.devbg.org/forum/index.php following information should be extracted: [protocol] = "http", [server] = "www.devbg.org", [resource] = "/forum/index.php"
  • 58.  Write a program that extracts from a given text all the sentences that contain given word. Example: The word is "in". The text is: We are living in a yellow submarine. We don't have anything else. Inside the submarine is very tight. So we are drinking all the day. We will move out of it in 5 days. The expected result is: We are living in a yellow submarine. We will move out of it in 5 days. Consider that the sentences are separated by "." and the words – by non-letter symbols.
  • 59.  We are given a string containing a list of forbidden words and a text containing some of these words. Write a program that replaces the forbidden words with asterisks. Example: Microsoft announced its next generation Java compiler today. It uses advanced parser and special optimizer for the Microsoft JVM. Words: "Java, JVM, Microsoft" The expected result: ********* announced its next generation **** compiler today. It uses advanced parser and special optimizer for the ********* ***.
  • 60.  Write a program that reads a string from the console and lists all the different letters in the string along with information how many times each letter is found.  Write a program that reads a string from the console and lists all the different words in the string with information how many times each word is found.  Write a program that reads a string from the console and replaces all series of consecutive identical letters with a single one. Example: "aaaaabbbbbcdddeeeedssaa" -> "abcdedsa".
  • 61.  Write a program that reads a list of words, separated by spaces (' ') , and prints the list in an alphabetical order.  Write a program that lets the user input a string of maximum 20 characters. If the length of the string is less, the rest of the characters should be filled with '*'. Print the string into the console.

Editor's Notes

  1. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  2. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  3. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  4. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  5. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  6. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  7. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  8. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  9. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  10. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  11. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  12. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  13. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  14. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  15. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  16. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ## Introducing the StringBuffer Class StringBuffer represents strings that can be modified and extended at run time. The following example creates three new String objects, and copies all the characters each time a new String is created: String quote = &quot;Fasten your seatbelts, &quot;; quote = quote + &quot;it’s going to be a bumpy night.&quot;; It is more efficient to preallocate the amount of space required using the StringBuffer constructor, and its append() method as follows: StringBuffer quote = new StringBuffer(60); // alloc 60 chars quote.append(&quot;Fasten your seatbelts, &quot;); quote.append(&quot; it’s going to be a bumpy night. &quot;); StringBuffer also provides a number of overloaded insert() methods for inserting various types of data at a particular location in the string buffer. Instructor Note The example in the slide uses StringBuffer to reverse the characters in a string. A StringBuffer object is created, with the same length as the string. The loop traverses the String parameter in reverse order and appends each of its characters to the StringBuffer object by using append() . The StringBuffer therefore holds a reverse copy of the String parameter. At the end of the method, a new String object is created from the StringBuffer object, and this String is returned from the method .
  17. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  18. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  19. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  20. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  21. * 03/07/13 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##