Strings, StringBuffer, StringBuilder

Size: px
Start display at page:

Download "Strings, StringBuffer, StringBuilder"

Transcription

1 Strings, StringBuffer, StringBuilder STRINGS, STRINGBUFFER, STRINGBUILDER What is a string... 1 String() IMMUTABLE using the new operator to invoke the constructor in the String class How many String objects have been created? String manipulation? What is static String copyvalueof(char[] data, int offset, int count)... 5 Example new object that is created when the concatenation occurs? Java String to ArrayList conversion, converting a String to ArrayList Converting Strings... 6 Arrays.asList() would do the trick here. // Arrays utility class What is the java.lang.string class What is the Class declarations for java.lang.string class: Use StringBuilder for string concatenation Why String is IMMUTABLE or Final in Java How does substring creates memory leak in Java Why is Char array preferred over String to store a password? "Have you used substring method in Java", Can you explain what substring does? Substring usage? what will happen if beginindex is equal to length in substring(int beginindex), Do you know how substring works in Java?... 9 SUBSTRING QUESTIONS How do you deal with this problem? You can get the character at a particular index within a string by invoking the charat() accessor method If you want to get more than one consecutive character from a string, you can use the substring method The following class, Filename, illustrates the use of lastindexof() and substring() to isolate different parts of a file name Here is a program, FilenameDemo, that constructs a Filename object and calls all of its methods: The following program, RegionMatchesDemo, uses the regionmatches method to search for a string within another string: When To Use ==, equals() And hashcode() On Strings CONCLUSION : THE STRINGBUILDER CLASS StringBuilder Constructors How StringBuffer And StringBuilder Differ From String Class Immutability : Object Creation : Storage Area : The StringBuilder class has some methods related to length and capacity that the String class does not have: Summary of Characters and Strings What is Thread Safety : Performance of multithread applications use StringBuilder class is better : Performance using String Concatenation, use StringBuffer or String Builder is better: In StringBuffer and StringBuilder classes, is equals() and hashcode methods overriden? In String, StringBuffer and StringBuilder class is tostring() Method overriden? Which class will you recommend among String, StringBuffer and StringBuilder classes if I want mutable and thread safe objects? What is a string 1

2 The String class represents character strings. All string literals in Java programs, such as "abc", are implemented as instances of this class. String str = "abc"; is equivalent to: char data[] = 'a', 'b', 'c'; String str = new String(data); String() IMMUTABLE Initializes a newly created String object so that it represents an empty character sequence. String(StringBuffer buffer) Synchronized, thread safe Allocates a new string that contains the sequence of characters currently contained in the string buffer argument. String(StringBuilder builder) MUTABLE, not synchronized, not thread safe public String(char[] value) Allocates a new String so that it represents the sequence of characters currently contained in the character array argument. More efficent than string since we can make changes to string. The contents of the character array are copied; subsequent modification of the character array does not affect the newly created string. Parameters: value - The initial value of the string public String(char[] value, int offset, int count) Parameters: value - Array that is the source of characters offset - The initial offset count - The length 2. using the new operator to invoke the constructor in the String class o package org.progund. strings; o public class UsingStrings o public static void main(string[] args) o String aname = new String("Adam"); o System.out.println("The String aname has the value: " + aname); o o only available for creating objects of type String! package org.progund. strings; public class UsingStrings public static void main(string[] args) 2

3 String aname = new String("Adam"); System.out.println("The String aname has the value: " + aname); String aflower = "Tulip"; System.out.println("The String aflower has the value: " + aflower); 3. How many String objects have been created? String x = new String("xyz"); String y = "abc"; x = x + y; A. 2 B. 3 C. 4 D. 5 Correct Answer: Option C Explanation: Line 1 > "String x = new String("xyz");" JVM will create 1 object of "xyz" in heap memory, 1 object in string pool for re-use and reference "x" will be created for object in heap memory. /** obj created 2 Line 2>"String y = "abc";" JVM checks String literal pool for object "abc", if no object is available in String pool, it will create 1 object in String pool /** total object created 2 +1 = 3 Line 3>"x = x+y" JVM checks String literal pool for object "xyzabc", if no object is available in String pool, it will create 1 object in String pool, now "x" will refer object "xyzabc" in string pool and object "abc" in heap memory will be abandoned and garbage collected /** total object created 3+1=4 So finally we have 1 object "xyz" in heap memory and 3 objects "xyz", "abc", "xyzabc" in string pool. Explanation 2 String x = new String("xyz"); if (x=="xyz") references, ie addresses System.out.println("true"); 3

4 else System.out.println("false"); String y = "abc"; x = x + y; System.out.println(x); Output: False. xyzabc. 4. String manipulation? public class Test138 public static void stringreplace (String text) text = text.replace ('j', 'c'); /* Line 5 */ public static void bufferreplace (StringBuffer text) text = text.append ("c"); /* Line 9 */ public static void main (String args[]) String textstring = new String ("java"); StringBuffer textbuffer = new StringBuffer ("java"); /* Line 14 */ stringreplace(textstring); bufferreplace(textbuffer); System.out.println (textstring + textbuffer); A. java B. javac C. javajavac D. Compile error Correct Answer: Option C Explanation: A string is immutable, it cannot be changed, that's the reason for the StringBuffer class. The stringreplacemethod does not change the string declared on line 14, so this remains set to "java". Method parameters are always passed by value - a copy is passed into the method - if the copy changes, the original remains intact, line 5 changes the reference i.e. text points to a new String object, however this is 4

5 lost when the method completes. The textbuffer is a StringBuffer so it can be changed. This change is carried out on line 9, so "java" becomes "javac", the text reference on line 9 remains unchanged. This gives us the output of "javajavac" 5. What is static String copyvalueof(char[] data, int offset, int count) Returns a String that represents the character sequence in the array specified. 5 public char[] tochararray() Return Value: Converts this string to a new character array. It returns a newly allocated character array, whose length is the length of this string and whose contents are initialized to contain the character sequence represented by this string. Example: import java.io.*; public class Test public static void main(string args[]) String Str = new String("Welcome to Tutorialspoint.com"); System.out.print("Return Value :" ); System.out.println(Str.toCharArray() ); This produces the following result: Return Value :Welcome to Tutorialspoint.com 6. new object that is created when the concatenation occurs? class PassS public static void main(string [] args) PassS p = new PassS(); p.start(); void start() String s1 = "slip"; String s2 = fix(s1); System.out.println(s1 + " " + s2); String fix(string s1) s1 = s1 + "stream"; System.out.print(s1 + " "); return "stream";

6 A. slip stream B. slipstream stream C. stream slip stream D. slipstream slip stream Your Answer: Option D Correct Answer: Option D Explanation: When the fix() method is first entered, start()'s s1 and fix()'s s1 reference variables both refer to the same String object (with a value of "slip"). Fix()'s s1 is reassigned to a new object that is created when the concatenation occurs (this second String object has a value of "slipstream"). When the program returns to start(), another String object is created, referred to by s2 and with a value of "stream". 7. Java String to ArrayList conversion, converting a String to ArrayList. 1) splitting the string using String split() method and storing the substrings into a String array. 2) Creating an ArrayList while passing the substring reference to it using Arrays.asList() method. package com.beginnersbook.string; import java.util.arraylist; import java.util.list; import java.util.arrays; public class StringtoArrayList public static void main(string args[]) String num = "22,33,44,55,66,77"; String str[] = num.split(","); Output: List<String> al = new ArrayList<String>(); al = Arrays.asList(str); for(string s: al) System.out.println(s); 8. Converting Strings creating string by java string literal 6

7 converting char array to string creating java string by new keyword public class StringExample public static void main(string args[]) String s1="java";//creating string by java string literal char ch[]='s','t','r','i','n','g','s'; String s2=new String(ch);//converting char array to string String s3=new String("example");//creating java string by new keyword System.out.println(s1); System.out.println(s2); System.out.println(s3); Test it Now java strings example Arrays.asList() would do the trick here. // Arrays utility class. String[] words = "ace", "boom", "crew", "dog", "eon"; List<String> wordlist = Arrays.asList(words); 9. What is the java.lang.string class java.lang.string class represents character strings. All string literals in Java programs, such as "abc", are implemented as instances of this class. Strings are constant, their values cannot be changed after they are created 10. What is the Class declarations for java.lang.string class: java.lang.string class: public final class String extends Object implements Serializable, Comparable<String>, CharSequence java.lang.stringbuilder class: public final class StringBuilder extends Object implements Serializable, CharSequence 11. Use StringBuilder for string concatenation Use a data type that best suits the needs such as StringBuilder, generic collection classes. 12. Why String is IMMUTABLE or Final in Java because String objects are cached in String pool. it can safely shared between many threads,which is very important for multithreaded programming and to avoid any synchronization issues in Java, HashMap. Since Strings are very popular as HashMap key, it's important for them to be IMMUTABLE so that they can retrieve the value object which was stored in HashMap. Since HashMap works in principle of hashing, which requires same has value to function properly 13. How does substring creates memory leak in Java There is a potential for a memory leak, if you take a substring of a sizable string and not make a copy (usually 7

8 via the String(String) CONSTRUCTOR). Note that this has changed since Java 7u6. See The original assumptions around the String object implementing a flyweight pattern are no longer regarded as valid. 14. Why is Char array preferred over String to store a password? String is IMMUTABLE in Java and stored in the String pool. Once it is created it stays in the pool until the garbage is created making the password available in the memory. It is a security risk because anyone who has access to the memory dump can find the password as clear text. Since Strings are immutable in Java if you store password as plain text it will be available in memory until Garbage collector clears it and since String are used in String pool for reusability there is pretty high chance that it will be remain in memory for long duration, which pose a security threat. Since any one who has access to memory dump can find the password in clear text and that's another reason you should always used an encrypted password than plain text. Since Strings are immutable there is no way contents of Strings can be changed because any change will produce new String, while if you char[] you can still set all his element as blank or zero. So Storing password in character array clearly mitigates security risk of stealing password. Java itself recommends using getpassword() method of JPasswordField which returns a char[] and deprecated gettext() method which returns password in clear text stating security reason. Its good to follow advice from Java team and adhering to standard rather than going against it. 15. "Have you used substring method in Java", Can you explain what substring does? substring method is used to get parts of String in Java. defined in java.lang.string class, and it's an overloaded method. One version of substring method takes just beginindex, and returns part of String started from beginindex till end, while other takes two parameters, beginindex and endindex, and returns part of String starting from beginindex to endindex-1. every time you call substring() method in Java, it will return a new String because String is IMMUTABLE in Java. 16. Substring usage? String a = "newspaper"; a = a.substring(5,7); //returns a String of length arg2 - arg1. char b = a.charat(1); a = a + b; System.out.println(a); A. apa B. app C. apea D. apep Correct Answer: Option B Explanation: 8

9 Both substring() and charat() methods are indexed with a zero-base, and substring() 17. what will happen if beginindex is equal to length in substring(int beginindex), no it won't throw IndexOutOfBoundException instead it will return empty String. Same is the case when beginindex and endindex is equal, in case of second method. It will only throw StringIndexBoundException when beginindex is negative, larger than endindex or larger than length of String. 18. Do you know how substring works in Java? java.lang.string. substring method inside String class, you will figure out that it calls String (int offset, int count, char value []) CONSTRUCTOR to create new String object. What is interesting here is, value[], which is the same character array used to represent original string. So what's wrong with this? In case If you have still not figured it out, If the original string is very long, and has array of size 1GB, no matter how small a substring is, it will hold 1GB array. This will also stop original string to be garbage collected, in case if doesn't have any live reference. This is clear case of memory leak in Java, where memory is retained even if it's not required. That's how substring method creates memory leak. 9

10 SubString Questions 19. How do you deal with this problem? Simple solution is to trim the string, and keep size of character array according to length of substring. Luckily java.lang.string has CONSTRUCTOR to do this, as shown in below example. // comma separated stock symbols from NYSE String listofstocksymbolsonnyse = getstocksymbolsfornyse(); //calling String(string) CONSTRUCTOR String apple = new String( listofstocksymbolsonnyse.substring(applestartindex, appleendindex) Manipulating Characters in a String The String class has a number of methods for examining the contents of strings, finding characters or substrings within a string, changing case, and other tasks. Getting Characters and Substrings by Index 20. You can get the character at a particular index within a string by invoking the charat() accessor method. The index of the first character is 0, while the index of the last character is length()-1. For example, the following code gets the character at index 9 in a string: 1. String anotherpalindrome = "Niagara. O roar again!"; 2. char achar = anotherpalindrome.charat(9); Indices begin at 0, so the character at index 9 is 'O', as illustrated in the following figure: 21. If you want to get more than one consecutive character from a string, you can use the substring method. The substring method has two versions, as shown in the following table: substring 2 parms String substring(int beginindex, int endindex) Returns a new string that is a substring of this string. The substring begins at the specified beginindex and extends to the character at index endindex substring 1 parm String substring(int beginindex) Returns a new string that is a substring of this string. The integer argument specifies the index of the first character. Here, the returned substring extends to the end of the original string.

11 The following code gets from the Niagara palindrome the substring that extends from index 11 up to, but not including, index 15, which is the word "roar": String anotherpalindrome = "Niagara. O roar again!"; String roar = anotherpalindrome.substring(11, 15); Other Methods for Manipulating Strings String[] split(string regex) String[] split(string regex, int limit) Searches for a match as specified by the string argument (which contains a regular expression) and splits this string into an array of strings accordingly. The optional integer argument specifies the maximum size of the returned array. Regular expressions are covered in the lesson titled "Regular Expressions." CharSequence subsequence(int beginindex, int endindex) Returns a new character sequence constructed from beginindex index up until endindex - 1. String trim() Returns a copy of this string with leading and trailing white space removed. String tolowercase() String touppercase() Returns a copy of this string converted to lowercase or uppercase. If no conversions are necessary, these methods return the original string. Searching for Characters and Substrings in a String Here are some other String methods for finding characters or substrings within a string. The String class provides accessor methods that return the position within the string of a specific character or substring: indexof() and lastindexof(). The indexof() methods search forward from the beginning of the string, and the lastindexof() methods search backward from the end of the string. If a character or substring is not found, indexof() and lastindexof() return -1. The String class also provides a search method, contains, that returns true if the string contains a particular character sequence. Use this method when you only need to know that the string contains a character sequence, but the precise location isn't important. int indexof(int ch) int lastindexof(int ch) Returns the index of the first (last) occurrence of the specified character. 11

12 int indexof(int ch, int fromindex) int lastindexof(int ch, int fromindex) Returns the index of the first (last) occurrence of the specified character, searching forward (backward) from the specified index. int indexof(string str) int lastindexof(string str) Returns the index of the first (last) occurrence of the specified substring. int indexof(string str, int fromindex) int lastindexof(string str, int fromindex) Returns the index of the first (last) occurrence of the specified substring, searching forward (backward) from the specified index. boolean contains(charsequence s) Returns true if the string contains the specified character sequence. Note: CharSequence is an interface that is implemented by the String class. Therefore, you can use a string as an argument for the contains() method. Replacing Characters and Substrings into a String The String class has very few methods for inserting characters or substrings into a string. In general, they are not needed: You can create a new string by concatenation of substrings you have removed from a string with the substring that you want to insert. The String class does have four methods for replacing found characters or substrings, however. They are: String replace(char oldchar, char newchar) Returns a new string resulting from replacing all occurrences of oldchar in this string with newchar. String replace(charsequence target, CharSequence replacement) Replaces each substring of this string that matches the literal target sequence with the specified literal replacement sequence. String replaceall(string regex, String replacement) Replaces each substring of this string that matches the given regular expression with the given replacement. 12 String replacefirst(string regex, String replacement) Replaces the first substring of this string that matches the given regular expression with the given replacement. 22. The following class, Filename, illustrates the use of lastindexof() and substring() to isolate different parts of a file name. Note: The methods in the following Filename class don't do any error checking and assume that their argument contains a full

13 directory path and a filename with an extension. If these methods were production code, they would verify that their arguments were properly constructed. public class Filename private String fullpath; private char pathseparator, extensionseparator; public Filename(String str, char sep, char ext) fullpath = str; pathseparator = sep; extensionseparator = ext; public String extension() int dot = fullpath.lastindexof(extensionseparator); return fullpath.substring(dot + 1); // gets filename without extension public String filename() int dot = fullpath.lastindexof(extensionseparator); int sep = fullpath.lastindexof(pathseparator); return fullpath.substring(sep + 1, dot); public String path() int sep = fullpath.lastindexof(pathseparator); return fullpath.substring(0, sep); 23. Here is a program, FilenameDemo, that constructs a Filename object and calls all of its methods: public class FilenameDemo public static void main(string[] args) final String FPATH = "/home/user/index.html"; Filename myhomepage = new Filename(FPATH, '/', '.'); System.out.println("Extension = " + myhomepage.extension()); System.out.println("Filename = " + myhomepage.filename()); System.out.println("Path = " + myhomepage.path()); And here's the output from the program: Extension = html Filename = index Path = /home/user As shown in the following figure, our extension method uses lastindexof to locate the last occurrence of the period (.) in the file name. Then substring uses the return value of lastindexof to extract the file name extension that is, the substring from the period to the end of the string. This code assumes that the file name has a period in it; if the file name does not have a period, lastindexof returns -1, and the substring method throws a StringIndexOutOfBoundsException. 13

14 Methods for Comparing Strings Method boolean endswith(string suffix) boolean startswith(string prefix) boolean startswith(string prefix, int offset) int compareto(string anotherstring) int comparetoignorecase(string str) boolean equals(object anobject) boolean equalsignorecase(string anotherstring) boolean regionmatches(int toffset, String other, int ooffset, int len) boolean regionmatches(boolean ignorecase, int toffset, String other, int ooffset, int len) boolean matches(string regex) Description Returns true if this string ends with or begins with the substring specified as an argument to the method. Considers the string beginning at the index offset, and returns true if it begins with the substring specified as an argument. Compares two strings lexicographically. Returns an integer indicating whether this string is greater than (result is > 0), equal to (result is = 0), or less than (result is < 0) the argument. Compares two strings lexicographically, ignoring differences in case. Returns an integer indicating whether this string is greater than (result is > 0), equal to (result is = 0), or less than (result is < 0) the argument. Returns true if and only if the argument is a String object that represents the same sequence of characters as this object. Returns true if and only if the argument is a String object that represents the same sequence of characters as this object, ignoring differences in case. Tests whether the specified region of this string matches the specified region of the String argument. Region is of length len and begins at the index toffset for this string and ooffset for the other string Tests whether the specified region of this string matches the specified region of the String argument. Region is of length len and begins at the index toffset for this string and ooffset for the other string. The boolean argument indicates whether case should be ignored; if true, case is ignored when comparing characters. Tests whether this string matches the specified regular expression. Regular expressions are discussed in the lesson titled "Regular Expressions.". 14

15 24. The following program, RegionMatchesDemo, uses the regionmatches method to search for a string within another string: public class RegionMatchesDemo public static void main(string[] args) String searchme = "Green Eggs and Ham"; String findme = "Eggs"; int searchmelength = searchme.length(); int findmelength = findme.length(); boolean foundit = false; for (int i = 0; i <= (searchmelength - findmelength); i++) if (searchme.regionmatches(i, findme, 0, findmelength)) foundit = true; System.out.println(searchMe.substring(i, i + findmelength)); break; if (!foundit) System.out.println("No match found. "); The output from this program is Eggs. The program steps through the string referred to by searchme one character at a time. For each character, the program calls the regionmatches method to determine whether the substring beginning with the current character matches the string the program is looking for. 15

16 25. When To Use ==, equals() And hashcode() On Strings pramodbablad September 3, == operator, equals() method and hashcode() methods are used to check the equality of any type of objects in Java. In this article, we will discuss which is the better way to check the equality of two string objects. == operator compares the two objects on their physical address. That means if two references are pointing to same object in the memory, then comparing those two references using == operator will return true. For example, if s1 and s2 are two references pointing to same object in the memory, then invoking s1 == s2 will return true. This type of comparison is called Shallow Comparison. equals() method, if not overrided, will perform same comparison as == operator does i.e comparing the objects on their physical address. So, it is always recommended that you should override equals() method in your class so that it provides field by field comparison of two objects. This type of comparison is called Deep Comparison. In java. lang.string class, equals() method is overrided to provide the comparison of two string objects based on their contents. That means, any two string objects having same content will be equal according to equals() method. For example, if s1 and s2 are two string objects having the same content, then invoking s1.equals(s2) will return true. hashcode() method returns hash code value of an object in the Integer form. It is recommended that whenever you override equals() method, you should also override hashcode() method so that two equal objects according to equals() method must return same hash code values. This is the general contract between equals() and hashcode() methods that must be maintained all the time. In java. lang.string class, hashcode() method is also overrided so that two equal string objects according to equals() method will return same hash code values. That means, if s1 and s2 are two equal string objects according to equals() method, then invoking s1.hashcode() == s2.hashcode() will return true. Let s apply these three methods on string objects and try to analyse their output. Define two string objects like below, String s1 = "JAVA"; String s2 = "JAVA"; Now apply above methods on these two objects. s1 == s2 > will return true as both are pointing to same object in the constant pool. s1.equals(s2) > will also return true as both are referring to same object. s1.hashcode() == s2.hashcode() > It also returns true. This type of comparison is straight forward. There is no speculation about this comparison. Let s define the string objects like below, String s1 = new String("JAVA"); String s2 = new String("JAVA"); s1 == s2 > will return false because s1 and s2 are referring to two different objects in the memory. s1.equals(s2) > will return true as both the objects have same content. s1.hashcode() == s2.hashcode() > It will also return true because two equals string objects according to equals() method will have same hash code values. Comparing the string objects defined like below will also give same result as the above. String s1 = "JAVA"; String s2 = new String("JAVA"); s1 == s2 > will return false because s1 and s2 are referring to two different objects in the memory. s1.equals(s2) > will return true as both the objects have same content. 16

17 s1.hashcode() == s2.hashcode() > It will also return true. Now, you may conclude that If there is a requirement of comparing two string objects on their physical address, then use == operator and if there is a requirement of comparing two string objects on their contents, then use equals() method or hashcode() method. Hold on. Before jumping onto conclusion, compare these two string objects. String s1 = "0-42L"; String s2 = "0-43-"; s1 == s2 > will return false as s1 and s2 are referring to two different objects in the memory. (Expected ) s1.equals(s2) > It will also return false as both the objects have different content. (Expected ) s1.hashcode() == s2.hashcode() > It will return true. (???.) This is because, two unequal string objects according to equals() method may have same hash code values. Therefore, it is recommended not to use hashcode() method to compare two string objects. You may not get expected result. Conclusion : When you want to check the equality of two string objects on their physical existence in the memory, then use == operator. If you want to check the equality of two string objects depending upon their contents, then use equals() method. It is recommended not to use hashcode() method to check the equality of two string objects. You may get unexpected result. The StringBuilder Class StringBuilder objects are like String objects, except that they can be modified. Internally, these objects are treated like variable-length arrays that contain a sequence of characters. At any point, the length and content of the sequence can be changed through method invocations. Strings should always be used unless string builders offer an advantage in terms of simpler code (see the sample program at the end of this section) or better performance. For example, if you need to concatenate a large number of strings, appending to a StringBuilder object is more efficient. Length and Capacity The StringBuilder class, like the String class, has a length() method that returns the length of the character sequence in the builder. Unlike strings, every string builder also has a capacity, the number of character spaces that have been allocated. The capacity, which is returned by the capacity() method, is always greater than or equal to the length (usually greater than) and will automatically expand as necessary to accommodate additions to the string builder. StringBuilder Constructors Constructor StringBuilder() Creates an empty string builder with a capacity of 16 (16 empty elements). StringBuilder(CharSequence cs) 17

18 Constructs a string builder containing the same characters as the specified CharSequence, plus an extra 16 empty elements trailing the CharSequence. StringBuilder(int initcapacity) Creates an empty string builder with the specified initial capacity. StringBuilder(String s) Creates a string builder whose value is initialized by the specified string, plus an extra 16 empty elements trailing the string. //creates empty builder, capacity 1StringBuilder sb = new StringBuilder(); // adds 9 character string at beginning sb.append("greetings"); will produce a string builder with a length of 9 and a capacity of 16: 26. How StringBuffer And StringBuilder Differ From String Class pramodbablad September 4, String objects created using java. lang.string class are immutable. Once they are created, they can not be modified. If you try to modify them, a new string object will be created with modified content. This property of String class may cause some memory issues for applications which need frequent modification of string objects. To overcome this behavior of String class, two more classes are introduced in Java to represent the strings. They are StringBuffer and StringBuilder. Both these classes are also members of java. lang package same as String class. In this article, I have tried to figure out how these two classes differ from String class. Immutability : This is main reason why StringBuffer and StringBuilder are introduced. As objects of String class are immutable, objects of StringBuffer and StringBuilder class are mutable. You can change the contents of StringBuffer and StringBuider objects at any time of execution. When you change the content, new objects are not created. Instead of that the changes are applied to existing object. Thus solving memory issues may caused by String class. Object Creation : You have to use new operator to create objects to StringBuffer and StringBuilder classes. You can t use string literals to create objects to these classes. For example, you can t write StringBuffer sb = JAVA or StringBuilder sb = JAVA. It gives compile time error. But, you can use both string literals and new operator to create objects to String class. 18

19 Storage Area : As objects of StringBuffer and StringBuilder are created using only new operator, they are stored in heap memory. Where as objects of String class are created using both string literals and new operator, they are stored in string constant pool as well as heap memory. 27. The StringBuilder class has some methods related to length and capacity that the String class does not have: void setlength(int newlength) Sets the length of the character sequence. If newlength is less than length(), the last characters in the character sequence are truncated. If newlength is greater than length(), null characters are added at the end of the character sequence. void ensurecapacity(int mincapacity) Ensures that the capacity is at least equal to the specified minimum. A number of operations (for example, append(), insert(), or setlength()) can increase the length of the character sequence in the string builder so that the resultant length() would be greater than the current capacity(). When this happens, the capacity is automatically increased. StringBuilder Operations The principal operations on a StringBuilder that are not available in String are the append() and insert() methods, which are overloaded so as to accept data of any type. Each converts its argument to a string and then appends or inserts the characters of that string to the character sequence in the string builder. The append method always adds these characters at the end of the existing character sequence, while the insert method adds the characters at a specified point. Here are a number of the methods of the StringBuilder class. StringBuilder append(boolean b) StringBuilder append(char c) StringBuilder append(char[] str) StringBuilder append(char[] str, int offset, int len) StringBuilder append(double d) StringBuilder append(float f) StringBuilder append(int i) StringBuilder append(long lng) StringBuilder append(object obj) StringBuilder append(string s) Appends the argument to this string builder. The data is converted to a string before the append operation takes place. StringBuilder delete(int start, int end) StringBuilder deletecharat(int index) The first method deletes the subsequence from start to end-1 (inclusive) in the StringBuilder's char sequence. The second method deletes the character located at index. 19 StringBuilder insert(int offset, boolean b) StringBuilder insert(int offset, char c) StringBuilder insert(int offset, char[] str) StringBuilder insert(int index, char[] str, int offset, int len) StringBuilder insert(int offset, double d)

20 StringBuilder insert(int offset, float f) StringBuilder insert(int offset, int i) StringBuilder insert(int offset, long lng) StringBuilder insert(int offset, Object obj) StringBuilder insert(int offset, String s) Inserts the second argument into the string builder. The first integer argument indicates the index before which the data is to be inserted. The data is converted to a string before the insert operation takes place. StringBuilder replace(int start, int end, String s) void setcharat(int index, char c) Replaces the specified character(s) in this string builder. StringBuilder reverse() Reverses the sequence of characters in this string builder. String tostring() Returns a string that contains the character sequence in the builder. Note: You can use any String method on a StringBuilder object by first converting the string builder to a string with the tostring() method of the StringBuilder class. Then convert the string back into a string builder using the StringBuilder(String str) constructor. The StringDemo program that was listed in the section titled "Strings" is an example of a program that would be more efficient if a StringBuilder were used instead of a String. StringDemo reversed a palindrome. public class StringDemo public static void main(string[] args) String palindrome = "Dot saw I was Tod"; int len = palindrome.length(); char[] tempchararray = new char[len]; char[] chararray = new char[len]; // put original string in an // array of chars for (int i = 0; i < len; i++) tempchararray[i] = palindrome.charat(i); // reverse array of chars for (int j = 0; j < len; j++) chararray[j] = tempchararray[len j]; String reversepalindrome = new String(charArray); System.out.println(reversePalindrome); Running the program produces this output: dot saw I was tod 20

21 To accomplish the string reversal, the program converts the string to an array of characters (first for loop), reverses the array into a second array (second for loop), and then converts back to a string. If you convert the palindrome string to a string builder, you can use the reverse() method in the StringBuilder class. It makes the code simpler and easier to read: public class StringBuilderDemo public static void main(string[] args) String palindrome = "Dot saw I was Tod"; StringBuilder sb = new StringBuilder(palindrome); sb.reverse(); // reverse it System.out.println(sb); Running this program produces the same output: dot saw I was tod Note that println() prints a string builder, as in: System.out.println(sb); because sb.tostring() is called implicitly, as it is with any other object in a println() invocation. 21 Note: There is also a StringBuffer class that is exactly the same as the StringBuilder class, except that it is thread-safe by virtue of having its methods synchronized. Threads will be discussed in the lesson on concurrency. Summary of Characters and Strings 1. Most of the time, if you are using a single character value, you will use the primitive char type. There are times, however, when you need to use a char as an object for example, as a method argument where an object is expected. The Java programming language provides a wrapper class that "wraps" the char in a Character object for this purpose. An object of type Character contains a single field whose type is char. This Character class also offers a number of useful class (i.e., static) methods for manipulating characters. 2. Strings are a sequence of characters and are widely used in Java programming. In the Java programming language, strings are objects. The String class has over 60 methods and 13 constructors. Most commonly, you create a string with a statement like String s = "Hello world!"; rather than using one of the String constructors. 3. The String class has many methods to find and retrieve substrings; these can then be easily reassembled into new strings using the + concatenation operator. 4. The String class also includes a number of utility methods, among them split(), tolowercase(), touppercase(), and valueof(). The latter method is indispensable in converting user input strings to numbers. The Number subclasses also have methods for converting strings to numbers and vice versa. 5. In addition to the String class, there is also a StringBuilder class. Working with StringBuilder objects can sometimes be more efficient than working with strings. The StringBuilder class offers a few methods that can be useful for strings, among them reverse(). In general, however, the String class has a wider variety of methods.

22 6. A string can be converted to a string builder using a StringBuilder constructor. A string builder can be converted to a string with the tostring() method. 28. What is Thread Safety : Any immutable object in java is thread safety. Because they are unchangeable once they are created. Any type of thread can t change the content of immutable object. This applies to objects of String class also. Of the StringBuffer and StringBuilder objects, only StringBuffer objects are thread safety. All necessary methods in StringBuffer class are synchronized so that only one thread can enter into it s object at any point of time. Where as StringBuilder objects are not thread safety. 29. Performance of multithread applications use StringBuilder class is better : Because of thread safety property of String and StringBuffer classes, they reduces the performance of multithreaded applications. Because, multiple threads can t enter into objects of these classes simultaneously. One thread has to wait until another thread is finished with them. But, you will not find performance problems if you use StringBuilder class. Becuase, multiple threads can enter into objects of this class. But, be aware that StringBuilder is not thread safety. 30. Performance using String Concatenation, use StringBuffer or String Builder is better: There will be serious performance issues when you are performing lots of string concatenation using String class. This is because, each time you perform string concatenation using string class, a new object will be created with the concatenated string. This slows down an application. But, if you use either StringBuffer or StringBuilder instead of String class, your application will perform better. Below program shows time taken by all three classes to perform string concatenation times. 22 public class StringExamples public static void main(string[] args) String s = "JAVA"; long starttime = System.currentTimeMillis(); for(int i = 0; i <= 10000; i++) s = s + "J2EE"; long endtime = System.currentTimeMillis(); System.out.println("Time taken by String class : "+(endtime - starttime)+" ms"); StringBuffer sb = new StringBuffer("JAVA"); starttime = System.currentTimeMillis(); for(int i = 0; i <= 10000; i++) sb. append("j2ee"); endtime = System.currentTimeMillis(); System.out.println("Time taken by StringBuffer class : "+(endtime - starttime)+" ms");

23 StringBuilder sb1 = new StringBuilder("JAVA"); starttime = System.currentTimeMillis(); for(int i = 0; i <= 10000; i++) sb1.append("j2ee"); endtime = System.currentTimeMillis(); System.out.println("Time taken by StringBuilder class : "+(endtime - starttime)+" ms"); Output : Time taken by String class : 429 ms Time taken by StringBuffer class : 2 ms Time taken by StringBuilder class : 0 ms Therefore, when you are performing lots of string concatenation in your application, it is better to use StringBuffer class (if you need thread safety) or StringBuilder class (If you don t need thread safety). 31. In StringBuffer and StringBuilder classes, is equals() and hashcode methods overriden? equals() and hashcode() Methods : In StringBuffer and StringBuilder classes, equals() and hashcode methods are not overrided. Where as in String class they are overrided. 32. In String, StringBuffer and StringBuilder class is tostring() Method overriden? tostring() Method : tostring() method is overrided in all three classes String, StringBuffer and StringBuilder. Y ou can also convert StringBuffer and StringBuilder objects to String type by calling tostring() method on them. 33. Which class will you recommend among String, StringBuffer and StringBuilder classes if I want mutable and thread safe objects? StringBuffer 23

Strings. Strings, which are widely used in Java programming, are a sequence of characters. In the Java programming language, strings are objects.

Strings. Strings, which are widely used in Java programming, are a sequence of characters. In the Java programming language, strings are objects. Strings Strings, which are widely used in Java programming, are a sequence of characters. In the Java programming language, strings are objects. The Java platform provides the String class to create and

More information

Creating Strings. String Length

Creating Strings. String Length Strings Strings, which are widely used in Java programming, are a sequence of characters. In the Java programming language, strings are objects. The Java platform provides the String class to create and

More information

Lab 14 & 15: String Handling

Lab 14 & 15: String Handling Lab 14 & 15: String Handling Prof. Navrati Saxena TA: Rochak Sachan String Handling 9/11/2012 22 String Handling Java implements strings as objects of type String. Once a String object has been created,

More information

Building Strings and Exploring String Class:

Building Strings and Exploring String Class: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Lecture Notes K.Yellaswamy Assistant Professor CMR College of Engineering & Technology Building Strings and Exploring

More information

Lecture Notes K.Yellaswamy Assistant Professor K L University

Lecture Notes K.Yellaswamy Assistant Professor K L University Lecture Notes K.Yellaswamy Assistant Professor K L University Building Strings and Exploring String Class: -------------------------------------------- The String class ------------------- String: A String

More information

Appendix 3. Description: Syntax: Parameters: Return Value: Example: Java - String charat() Method

Appendix 3. Description: Syntax: Parameters: Return Value: Example: Java - String charat() Method Appendix 3 Java - String charat() Method This method returns the character located at the String's specified index. The string indexes start from zero. public char charat(int index) index -- Index of the

More information

2. All the strings gets collected in a special memory are for Strings called " String constant pool".

2. All the strings gets collected in a special memory are for Strings called  String constant pool. Basics about Strings in Java 1. You can create Strings in various ways:- a) By Creating a String Object String s=new String("abcdef"); b) By just creating object and then referring to string String a=new

More information

Class Library java.lang Package. Bok, Jong Soon

Class Library java.lang Package. Bok, Jong Soon Class Library java.lang Package Bok, Jong Soon javaexpert@nate.com www.javaexpert.co.kr Object class Is the root of the class hierarchy. Every class has Object as a superclass. If no inheritance is specified

More information

"Hello" " This " + "is String " + "concatenation"

Hello  This  + is String  + concatenation Strings About Strings Strings are objects, but there is a special syntax for writing String literals: "Hello" Strings, unlike most other objects, have a defined operation (as opposed to a method): " This

More information

String. Other languages that implement strings as character arrays

String. Other languages that implement strings as character arrays 1. length() 2. tostring() 3. charat() 4. getchars() 5. getbytes() 6. tochararray() 7. equals() 8. equalsignorecase() 9. regionmatches() 10. startswith() 11. endswith() 12. compareto() 13. indexof() 14.

More information

Java String Java String provides a lot of concepts that can be performed on a string such as compare, concat, equals, split, length, replace,

Java String Java String provides a lot of concepts that can be performed on a string such as compare, concat, equals, split, length, replace, Java String Java String provides a lot of concepts that can be performed on a string such as compare, concat, equals, split, length, replace, compareto, intern, substring etc. In java, string is basically

More information

CS-140 Fall Binghamton University. Methods. Sect. 3.3, 8.2. There s a method in my madness.

CS-140 Fall Binghamton University. Methods. Sect. 3.3, 8.2. There s a method in my madness. Methods There s a method in my madness. Sect. 3.3, 8.2 1 Example Class: Car How Cars are Described Make Model Year Color Owner Location Mileage Actions that can be applied to cars Create a new car Transfer

More information

Class definition. complete definition. public public class abstract no instance can be created final class cannot be extended

Class definition. complete definition. public public class abstract no instance can be created final class cannot be extended JAVA Classes Class definition complete definition [public] [abstract] [final] class Name [extends Parent] [impelements ListOfInterfaces] {... // class body public public class abstract no instance can

More information

String is one of mostly used Object in Java. And this is the reason why String has unique handling in Java(String Pool). The String class represents

String is one of mostly used Object in Java. And this is the reason why String has unique handling in Java(String Pool). The String class represents String is one of mostly used Object in Java. And this is the reason why String has unique handling in Java(String Pool). The String class represents character strings. All string literals in Java programs,

More information

Strings. Strings and their methods. Dr. Siobhán Drohan. Produced by: Department of Computing and Mathematics

Strings. Strings and their methods. Dr. Siobhán Drohan. Produced by: Department of Computing and Mathematics Strings Strings and their methods Produced by: Dr. Siobhán Drohan Department of Computing and Mathematics http://www.wit.ie/ Topics list Primitive Types: char Object Types: String Primitive vs Object Types

More information

About Codefrux While the current trends around the world are based on the internet, mobile and its applications, we try to make the most out of it. As for us, we are a well established IT professionals

More information

Eng. Mohammed Abdualal

Eng. Mohammed Abdualal Islamic University of Gaza Faculty of Engineering Computer Engineering Department Computer Programming Lab (ECOM 2124) Lab 2 String & Character Eng. Mohammed Abdualal String Class In this lab, you have

More information

Assoc. Prof. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.

Assoc. Prof. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved. Assoc. Prof. Marenglen Biba (C) 2010 Pearson Education, Inc. All Advanced Java This chapter discusses class String, class StringBuilder and class Character from the java.lang package. These classes provide

More information

STUDENT LESSON A10 The String Class

STUDENT LESSON A10 The String Class STUDENT LESSON A10 The String Class Java Curriculum for AP Computer Science, Student Lesson A10 1 STUDENT LESSON A10 The String Class INTRODUCTION: Strings are needed in many programming tasks. Much of

More information

Chapter 12 Strings and Characters. Dr. Hikmat Jaber

Chapter 12 Strings and Characters. Dr. Hikmat Jaber Chapter 12 Strings and Characters Dr. Hikmat Jaber 1 The String Class Constructing a String: String message = "Welcome to Java ; String message = new String("Welcome to Java ); String s = new String();

More information

Preview from Notesale.co.uk Page 9 of 108

Preview from Notesale.co.uk Page 9 of 108 The following list shows the reserved words in Java. These reserved words may not be used as constant or variable or any other identifier names. abstract assert boolean break byte case catch char class

More information

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Internal Examination 1 Answer Key DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Branch & Sec : CSE Date : 08.08.2014 Semester : V Sem Max Marks : 50 Marks Sub Code& Title : CS2305 Programming Paradigms

More information

Faculty of Science COMP-202A - Introduction to Computing I (Fall 2008) Final Examination

Faculty of Science COMP-202A - Introduction to Computing I (Fall 2008) Final Examination First Name: Last Name: McGill ID: Section: Faculty of Science COMP-202A - Introduction to Computing I (Fall 2008) Final Examination Thursday, December 11, 2008 Examiners: Mathieu Petitpas [Section 1] 14:00

More information

Faculty of Science COMP-202B - Introduction to Computing I (Winter 2009) - All Sections Final Examination

Faculty of Science COMP-202B - Introduction to Computing I (Winter 2009) - All Sections Final Examination First Name: Last Name: McGill ID: Section: Faculty of Science COMP-202B - Introduction to Computing I (Winter 2009) - All Sections Final Examination Wednesday, April 29, 2009 Examiners: Mathieu Petitpas

More information

Object-Oriented Programming

Object-Oriented Programming Data structures Object-Oriented Programming Outline Primitive data types String Math class Array Container classes Readings: HFJ: Ch. 13, 6. GT: Ch. 13, 6. Đại học Công nghệ - ĐHQG HN Data structures 2

More information

Assoc. Prof. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.

Assoc. Prof. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved. Assoc. Prof. Marenglen Biba (C) 2010 Pearson Education, Inc. All This chapter discusses class String, from the java.lang package. These classes provide the foundation for string and character manipulation

More information

appreciate the difference between a char and a string understand and use the String class methods

appreciate the difference between a char and a string understand and use the String class methods 1 8 THE STRING CLASS Terry Marris 16 April 2001 8.1 OBJECTIVES By the end of this lesson the student should be able to appreciate the difference between a char and a string understand and use the String

More information

Java s String Class. in simplest form, just quoted text. used as parameters to. "This is a string" "So is this" "hi"

Java s String Class. in simplest form, just quoted text. used as parameters to. This is a string So is this hi 1 Java s String Class in simplest form, just quoted text "This is a string" "So is this" "hi" used as parameters to Text constructor System.out.println 2 The Empty String smallest possible string made

More information

Java Strings Java, winter semester

Java Strings Java, winter semester Java Strings 1 String instances of java.lang.string compiler works with them almost with primitive types String constants = instances of the String class immutable!!! for changes clases StringBuffer, StringBuilder

More information

JAVA NUMBERS, CHARS AND STRINGS

JAVA NUMBERS, CHARS AND STRINGS JAVA NUMBERS, CHARS AND STRINGS It turned out that all Workstation in the classroom are NOT set equally. This is why I wil demonstrate all examples using an on line web tool http://www.browxy.com/ Please

More information

SOFTWARE DEVELOPMENT 1. Strings and Enumerations 2018W A. Ferscha (Institute of Pervasive Computing, JKU Linz)

SOFTWARE DEVELOPMENT 1. Strings and Enumerations 2018W A. Ferscha (Institute of Pervasive Computing, JKU Linz) SOFTWARE DEVELOPMENT 1 Strings and Enumerations 2018W (Institute of Pervasive Computing, JKU Linz) CHARACTER ENCODING On digital systems, each character is represented by a specific number. The character

More information

TEXT-BASED APPLICATIONS

TEXT-BASED APPLICATIONS Objectives 9 TEXT-BASED APPLICATIONS Write a program that uses command-line arguments and system properties Write a program that reads from standard input Write a program that can create, read, and write

More information

09 Objects III: String and StringBuffer, Singly (Doubly) Linked Lists

09 Objects III: String and StringBuffer, Singly (Doubly) Linked Lists Exercises Software Development I 09 Objects III: String and StringBuffer, Singly (Doubly) Linked Lists December 10th, 2014 Software Development I Winter term 2014/2015 Priv.-Doz. Dipl.-Ing. Dr. Andreas

More information

Mathematics for Computer Graphics - Lecture 12

Mathematics for Computer Graphics - Lecture 12 Mathematics for Computer Graphics - Lecture 12 Dr. Philippe B. Laval Kennesaw State University October 6, 2003 Abstract This document is about creating Java Applets as they relate to the project we are

More information

CHAPTER 6 MOST COMMONLY USED LIBRARIES

CHAPTER 6 MOST COMMONLY USED LIBRARIES LIBRARY CHAPTER 6 - A set of ready-made software routines (class definitions) that can be reused in new programs, is called a Library. - Some commonly used java libraries are : Math Library String Library

More information

Overloaded Methods. Sending Messages. Overloaded Constructors. Sending Parameters

Overloaded Methods. Sending Messages. Overloaded Constructors. Sending Parameters Overloaded Methods Sending Messages Suggested Reading: Bruce Eckel, Thinking in Java (Fourth Edition) Initialization & Cleanup 2 Overloaded Constructors Sending Parameters accessor method 3 4 Sending Parameters

More information

More non-primitive types Lesson 06

More non-primitive types Lesson 06 CSC110 2.0 Object Oriented Programming Ms. Gnanakanthi Makalanda Dept. of Computer Science University of Sri Jayewardenepura More non-primitive types Lesson 06 1 2 Outline 1. Two-dimensional arrays 2.

More information

Java Programming. String Processing. 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Java Programming. String Processing. 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved. Java Programming String Processing 1 Copyright 2013, Oracle and/or its affiliates. All rights Overview This lesson covers the following topics: Read, search, and parse Strings Use StringBuilder to create

More information

OBJECT ORIENTED PROGRAMMING. Course 3 Loredana STANCIU Room B616

OBJECT ORIENTED PROGRAMMING. Course 3 Loredana STANCIU Room B616 OBJECT ORIENTED PROGRAMMING Course 3 Loredana STANCIU loredana.stanciu@aut.upt.ro Room B616 Summary of course 2 Primitive data types Variables, arrays Operators Expressions Statements and blocks Control

More information

CS 1301 Ch 8, Part A

CS 1301 Ch 8, Part A CS 1301 Ch 8, Part A Sections Pages Review Questions Programming Exercises 8.1 8.8 264 291 1 30 2,4,6,8,10,12,14,16,18,24,28 This section of notes discusses the String class. The String Class 1. A String

More information

5/23/2015. Core Java Syllabus. VikRam ShaRma

5/23/2015. Core Java Syllabus. VikRam ShaRma 5/23/2015 Core Java Syllabus VikRam ShaRma Basic Concepts of Core Java 1 Introduction to Java 1.1 Need of java i.e. History 1.2 What is java? 1.3 Java Buzzwords 1.4 JDK JRE JVM JIT - Java Compiler 1.5

More information

Chapter 8 Strings. Chapter 8 Strings

Chapter 8 Strings. Chapter 8 Strings Chapter 8 Strings Chapter 6 Arrays Chapter 7 Objects and Classes Chapter 8 Strings Chapter 9 Inheritance and Polymorphism GUI can be covered after 10.2, Abstract Classes Chapter 12 GUI Basics 10.2, Abstract

More information

Strings, Strings and characters, String class methods. JAVA Standard Edition

Strings, Strings and characters, String class methods. JAVA Standard Edition Strings, Strings and characters, String class methods JAVA Standard Edition Java - Character Class Normally, when we work with characters, we use primitive data types char. char ch = 'a'; // Unicode for

More information

Chapter 11 Object-Oriented Design Exception and binary I/O can be covered after Chapter 9

Chapter 11 Object-Oriented Design Exception and binary I/O can be covered after Chapter 9 CHAPTER 8 STRINGS Chapter 6 Arrays Chapter 7 Objects and Classes Chapter 8 Strings Chapter 9 Inheritance and Polymorphism GUI can be covered after 10.2, Abstract Classes Chapter 12 GUI Basics 10.2, Abstract

More information

STRINGS AND STRINGBUILDERS. Spring 2019

STRINGS AND STRINGBUILDERS. Spring 2019 STRINGS AND STRINGBUILDERS Spring 2019 STRING BASICS In Java, a string is an object. Three important pre-built classes used in string processing: the String class used to create and store immutable strings

More information

TEST (MODULE:- 1 and 2)

TEST (MODULE:- 1 and 2) TEST (MODULE:- 1 and 2) What are command line arguments? Write a program in JAVA to print Fibonacci series using command line arguments? [10] Create a class employee with data members empid, empname, designation

More information

OOP-Lecture Java Loop Controls: 1 Lecturer: Hawraa Sh. You can use one of the following three loops: while Loop do...while Loop for Loop

OOP-Lecture Java Loop Controls: 1 Lecturer: Hawraa Sh. You can use one of the following three loops: while Loop do...while Loop for Loop Java Loop Controls: You can use one of the following three loops: while Loop do...while Loop for Loop 1- The while Loop: A while loop is a control structure that allows you to repeat a task a certain number

More information

CS112 Lecture: Characters and Strings

CS112 Lecture: Characters and Strings CS112 Lecture: Characters and Strings Objectives: Last Revised 3/21/06 1. To introduce the data type char and related basic information (escape sequences, Unicode). 2. To introduce the library classes

More information

C08c: A Few Classes in the Java Library (II)

C08c: A Few Classes in the Java Library (II) CISC 3115 TY3 C08c: A Few Classes in the Java Library (II) Hui Chen Department of Computer & Information Science CUNY Brooklyn College 9/20/2018 CUNY Brooklyn College 1 Outline Discussed Concepts of two

More information

Java Programming. MSc Induction Tutorials Stefan Stafrace PhD Student Department of Computing

Java Programming. MSc Induction Tutorials Stefan Stafrace PhD Student Department of Computing Java Programming MSc Induction Tutorials 2011 Stefan Stafrace PhD Student Department of Computing s.stafrace@surrey.ac.uk 1 Tutorial Objectives This is an example based tutorial for students who want to

More information

Index COPYRIGHTED MATERIAL

Index COPYRIGHTED MATERIAL Index COPYRIGHTED MATERIAL Note to the Reader: Throughout this index boldfaced page numbers indicate primary discussions of a topic. Italicized page numbers indicate illustrations. A abstract classes

More information

More on Strings. Lecture 10 CGS 3416 Fall October 13, 2015

More on Strings. Lecture 10 CGS 3416 Fall October 13, 2015 More on Strings Lecture 10 CGS 3416 Fall 2015 October 13, 2015 What we know so far In Java, a string is an object. The String class is used to create and store immutable strings. Some String class methods

More information

ECS-503 Object Oriented Techniques

ECS-503 Object Oriented Techniques UNIT-4 Part-2 ECS-503 Object Oriented Techniques CHAPTER 16 String Handling Java implements strings as objects of type String. Implementing strings as built-in objects allows Java to provide a full complement

More information

More on variables and methods

More on variables and methods More on variables and methods Robots Learning to Program with Java Byron Weber Becker chapter 7 Announcements (Oct 12) Reading for Monday Ch 7.4-7.5 Program#5 out Character Data String is a java class

More information

CS-140 Fall Binghamton University. Methods. Sect. 3.3, 8.2. There s a method in my madness.

CS-140 Fall Binghamton University. Methods. Sect. 3.3, 8.2. There s a method in my madness. Methods There s a method in my madness. Sect. 3.3, 8.2 1 Example Class: Car How Cars are Described Make Model Year Color Owner Location Mileage Actions that can be applied to cars Create a new car Transfer

More information

Chapter 10: Text Processing and More about Wrapper Classes

Chapter 10: Text Processing and More about Wrapper Classes Chapter 10: Text Processing and More about Wrapper Classes Starting Out with Java: From Control Structures through Objects Fourth Edition by Tony Gaddis Addison Wesley is an imprint of 2010 Pearson Addison-Wesley.

More information

Class. Chapter 6: Data Abstraction. Example. Class

Class. Chapter 6: Data Abstraction. Example. Class Chapter 6: Data Abstraction In Java, there are three types of data values primitives arrays objects actually, arrays are a special type of object Class In Java, objects are used to represent data values

More information

IS502052: Enterprise Systems Development Concepts Lab 1: Java Review

IS502052: Enterprise Systems Development Concepts Lab 1: Java Review IS502052: Enterprise Systems Development Concepts Lab 1: Java Review I. Introduction In this first lab, we will review the Java Programming Language, since this course is focus on Java, especially, Java

More information

Intro to Strings. Lecture 7 COP 3252 Summer May 23, 2017

Intro to Strings. Lecture 7 COP 3252 Summer May 23, 2017 Intro to Strings Lecture 7 COP 3252 Summer 2017 May 23, 2017 Strings in Java In Java, a string is an object. It is not a primitive type. The String class is used to create and store immutable strings.

More information

Selected Questions from by Nageshwara Rao

Selected Questions from  by Nageshwara Rao Selected Questions from http://way2java.com by Nageshwara Rao Swaminathan J Amrita University swaminathanj@am.amrita.edu November 24, 2016 Swaminathan J (Amrita University) way2java.com (Nageshwara Rao)

More information

Brief Summary of Java

Brief Summary of Java Brief Summary of Java Java programs are compiled into an intermediate format, known as bytecode, and then run through an interpreter that executes in a Java Virtual Machine (JVM). The basic syntax of Java

More information

Slide 1 CS 170 Java Programming 1 More on Strings Duration: 00:00:47 Advance mode: Auto

Slide 1 CS 170 Java Programming 1 More on Strings Duration: 00:00:47 Advance mode: Auto CS 170 Java Programming 1 More on Strings Working with the String class Slide 1 CS 170 Java Programming 1 More on Strings Duration: 00:00:47 What are Strings in Java? Immutable sequences of 0 n characters

More information

CS 231 Data Structures and Algorithms, Fall 2016

CS 231 Data Structures and Algorithms, Fall 2016 CS 231 Data Structures and Algorithms, Fall 2016 Dr. Bruce A. Maxwell Department of Computer Science Colby College Course Description Focuses on the common structures used to store data and the standard

More information

CSE1710. Big Picture. Today is last day covering Ch 6. Tuesday, Dec 02 is designated as a study day. No classes. Thursday, Dec 04 is last lecture.

CSE1710. Big Picture. Today is last day covering Ch 6. Tuesday, Dec 02 is designated as a study day. No classes. Thursday, Dec 04 is last lecture. CSE1710 Click to edit Master Week text 12, styles Lecture 23 Second level Third level Fourth level Fifth level Fall 2014! Thursday, Nov 27, 2014 1 Big Picture Today is last day covering Ch 6 Tuesday, Dec

More information

Enough java.lang.string to Hang Ourselves...

Enough java.lang.string to Hang Ourselves... Enough java.lang.string to Hang Ourselves... Dr Heinz M. Kabutz Last Updated 2018-06-19 2018 Heinz Kabutz, All Rights Reserved !2 Converting int val to a String? 1."" + val 2.Integer.toString(val) 3.Integer.valueOf(val)

More information

Java Intro 3. Java Intro 3. Class Libraries and the Java API. Outline

Java Intro 3. Java Intro 3. Class Libraries and the Java API. Outline Java Intro 3 9/7/2007 1 Java Intro 3 Outline Java API Packages Access Rules, Class Visibility Strings as Objects Wrapper classes Static Attributes & Methods Hello World details 9/7/2007 2 Class Libraries

More information

String related classes

String related classes Java Strings String related classes Java provides three String related classes java.lang package String class: Storing and processing Strings but Strings created using the String class cannot be modified

More information

Faculty of Science COMP-202A - Introduction to Computing I (Fall 2009) - All Sections Final Examination

Faculty of Science COMP-202A - Introduction to Computing I (Fall 2009) - All Sections Final Examination First Name: Last Name: McGill ID: Section: Faculty of Science COMP-202A - Introduction to Computing I (Fall 2009) - All Sections Final Examination Wednesday, December 16, 2009 Examiners: Mathieu Petitpas

More information

A variable is a name for a location in memory A variable must be declared

A variable is a name for a location in memory A variable must be declared Variables A variable is a name for a location in memory A variable must be declared, specifying the variable's name and the type of information that will be held in it data type variable name int total;

More information

Ans: Store s as an expandable array of chars. (Double its size whenever we run out of space.) Cast the final array to a String.

Ans: Store s as an expandable array of chars. (Double its size whenever we run out of space.) Cast the final array to a String. CMSC 131: Chapter 21 (Supplement) Miscellany Miscellany Today we discuss a number of unrelated but useful topics that have just not fit into earlier lectures. These include: StringBuffer: A handy class

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

1 Shyam sir JAVA Notes

1 Shyam sir JAVA Notes 1 Shyam sir JAVA Notes 1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write

More information

CSC 1051 Algorithms and Data Structures I. Midterm Examination October 11, Name: KEY

CSC 1051 Algorithms and Data Structures I. Midterm Examination October 11, Name: KEY CSC 1051 Algorithms and Data Structures I Midterm Examination October 11, 2018 Name: KEY Question Value Score 1 20 2 20 3 20 4 20 5 20 TOTAL 100 Please answer questions in the spaces provided. If you make

More information

CSC 1051 Algorithms and Data Structures I. Midterm Examination March 1, Name: KEY A

CSC 1051 Algorithms and Data Structures I. Midterm Examination March 1, Name: KEY A CSC 1051 Algorithms and Data Structures I Midterm Examination March 1, 2018 Name: KEY A Question Value Score 1 20 2 20 3 20 4 20 5 20 TOTAL 100 Please answer questions in the spaces provided. If you make

More information

More on Strings. String methods and equality. Mairead Meagher Dr. Siobhán Drohan. Produced by: Department of Compu<ng and Mathema<cs h=p://www.wit.

More on Strings. String methods and equality. Mairead Meagher Dr. Siobhán Drohan. Produced by: Department of Compu<ng and Mathema<cs h=p://www.wit. More on Strings String methods and equality Produced by: Mairead Meagher Dr. Siobhán Drohan Department of Compu

More information

J.43 The length field of an array object makes the length of the array available. J.44 ARRAYS

J.43 The length field of an array object makes the length of the array available. J.44 ARRAYS ARRAYS A Java array is an Object that holds an ordered collection of elements. Components of an array can be primitive types or may reference objects, including other arrays. Arrays can be declared, allocated,

More information

CS 112 Programming 2. Lecture 10. Abstract Classes & Interfaces (1) Chapter 13 Abstract Classes and Interfaces

CS 112 Programming 2. Lecture 10. Abstract Classes & Interfaces (1) Chapter 13 Abstract Classes and Interfaces CS 112 Programming 2 Lecture 10 Abstract Classes & Interfaces (1) Chapter 13 Abstract Classes and Interfaces 2 1 Motivations We have learned how to write simple programs to create and display GUI components.

More information

We now start exploring some key elements of the Java programming language and ways of performing I/O

We now start exploring some key elements of the Java programming language and ways of performing I/O We now start exploring some key elements of the Java programming language and ways of performing I/O This week we focus on: Introduction to objects The String class String concatenation Creating objects

More information

Java Language Features

Java Language Features Java Language Features References: Object-Oriented Development Using Java, Xiaoping Jia Internet Course notes by E.Burris Computing Fundamentals with Java, by Rick Mercer Beginning Java Objects - From

More information

CMPT 125: Lecture 3 Data and Expressions

CMPT 125: Lecture 3 Data and Expressions CMPT 125: Lecture 3 Data and Expressions Tamara Smyth, tamaras@cs.sfu.ca School of Computing Science, Simon Fraser University January 3, 2009 1 Character Strings A character string is an object in Java,

More information

Language Features. 1. The primitive types int, double, and boolean are part of the AP

Language Features. 1. The primitive types int, double, and boolean are part of the AP Language Features 1. The primitive types int, double, and boolean are part of the AP short, long, byte, char, and float are not in the subset. In particular, students need not be aware that strings are

More information

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved.

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved. Java How to Program, 10/e Education, Inc. All Rights Reserved. Each class you create becomes a new type that can be used to declare variables and create objects. You can declare new classes as needed;

More information

Ohad Barzilay and Oranit Dror

Ohad Barzilay and Oranit Dror The String Class Represents a character string (e.g. "Hi") Implicit constructor: String quote = "Hello World"; string literal All string literals are String instances Object has a tostring() method More

More information

Java Foundations: Unit 3. Parts of a Java Program

Java Foundations: Unit 3. Parts of a Java Program Java Foundations: Unit 3 Parts of a Java Program class + name public class HelloWorld public static void main( String[] args ) System.out.println( Hello world! ); A class creates a new type, something

More information

Java Fundamentals (II)

Java Fundamentals (II) Chair of Software Engineering Languages in Depth Series: Java Programming Prof. Dr. Bertrand Meyer Java Fundamentals (II) Marco Piccioni static imports Introduced in 5.0 Imported static members of a class

More information

CSC 1051 Algorithms and Data Structures I. Midterm Examination March 2, Name:

CSC 1051 Algorithms and Data Structures I. Midterm Examination March 2, Name: CSC 1051 Algorithms and Data Structures I Midterm Examination March 2, 2017 Name: Question Value Score 1 10 2 10 3 20 4 20 5 20 6 20 TOTAL 100 Please answer questions in the spaces provided. If you make

More information

COMP-202 Unit 5: Basics of Using Objects

COMP-202 Unit 5: Basics of Using Objects COMP-202 Unit 5: Basics of Using Objects CONTENTS: Concepts: Classes, Objects, and Methods Creating and Using Objects Introduction to Basic Java Classes (String, Random, Scanner, Math...) Introduction

More information

Chapter 29: String and Object References Bradley Kjell (Revised 06/15/2008)

Chapter 29: String and Object References Bradley Kjell (Revised 06/15/2008) Chapter 29: String and Object References Bradley Kjell (Revised 06/15/2008) In previous chapters, methods were called with parameters that were primitive data types. This chapter discusses how to use object

More information

In Java there are three types of data values:

In Java there are three types of data values: In Java there are three types of data values: primitive data values (int, double, boolean, etc.) arrays (actually a special type of object) objects An object might represent a string of characters, a planet,

More information

- Thus there is a String class (a large class)

- Thus there is a String class (a large class) Strings - Strings in Java are objects - Thus there is a String class (a large class) - In a statement like this: System.out.println( Hello World ); the Java compiler creates a String object from the quoted

More information

1. Java is a... language. A. moderate typed B. strogly typed C. weakly typed D. none of these. Answer: B

1. Java is a... language. A. moderate typed B. strogly typed C. weakly typed D. none of these. Answer: B 1. Java is a... language. A. moderate typed B. strogly typed C. weakly typed D. none of these 2. How many primitive data types are there in Java? A. 5 B. 6 C. 7 D. 8 3. In Java byte, short, int and long

More information

Introductory Mobile Application Development

Introductory Mobile Application Development Notes Quick Links Introductory Mobile Application Development 152-160 Java Syntax Part 2 - Activity String Class Add section on Parse ArrayList Class methods. Book page 95. Toast Page 129 240 242 String

More information

AP Computer Science. Strings. Credit: Slides are modified with permission from Barry Wittman at Elizabethtown College

AP Computer Science. Strings. Credit: Slides are modified with permission from Barry Wittman at Elizabethtown College Strings AP Computer Science Credit: Slides are modified with permission from Barry Wittman at Elizabethtown College This work is licensed under an Attribution-NonCommercial-ShareAlike 3.0 Unported License

More information

Review Chapters 1 to 4. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013

Review Chapters 1 to 4. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 Review Chapters 1 to 4 Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 Introduction to Java Chapters 1 and 2 The Java Language Section 1.1 Data & Expressions Sections 2.1 2.5 Instructor:

More information

20 Most Important Java Programming Interview Questions. Powered by

20 Most Important Java Programming Interview Questions. Powered by 20 Most Important Java Programming Interview Questions Powered by 1. What's the difference between an interface and an abstract class? An abstract class is a class that is only partially implemented by

More information

CSE 143 Au03 Final Exam Page 1 of 15

CSE 143 Au03 Final Exam Page 1 of 15 CSE 143 Au03 Final Exam Page 1 of 15 Reference information about many standard Java classes appears at the end of the test. You might want to tear off those pages to make them easier to refer to while

More information

DOWNLOAD PDF CORE JAVA APTITUDE QUESTIONS AND ANSWERS

DOWNLOAD PDF CORE JAVA APTITUDE QUESTIONS AND ANSWERS Chapter 1 : Chapter-wise Java Multiple Choice Questions and Answers Interview MCQs Java Programming questions and answers with explanation for interview, competitive examination and entrance test. Fully

More information

COMP 202. Built in Libraries and objects. CONTENTS: Introduction to objects Introduction to some basic Java libraries string

COMP 202. Built in Libraries and objects. CONTENTS: Introduction to objects Introduction to some basic Java libraries string COMP 202 Built in Libraries and objects CONTENTS: Introduction to objects Introduction to some basic Java libraries string COMP 202 Objects and Built in Libraries 1 Classes and Objects An object is an

More information

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix PGJC4_JSE8_OCA.book Page ix Monday, June 20, 2016 2:31 PM Contents Figures Tables Examples Foreword Preface xix xxi xxiii xxvii xxix 1 Basics of Java Programming 1 1.1 Introduction 2 1.2 Classes 2 Declaring

More information

String temp [] = {"a", "b", "c"}; where temp[] is String array.

String temp [] = {a, b, c}; where temp[] is String array. SCJP 1.6 (CX-310-065, CX-310-066) Subject: String, I/O, Formatting, Regex, Serializable, Console Total Questions : 57 Prepared by : http://www.javacertifications.net SCJP 6.0: String,Files,IO,Date and

More information