Java Language

Discussions String A String is a series of characters, example [‘h’,’e’,’l’,’l’,’o’]. In Java, string is an object. The Java platform has String class to create and manipulate strings in a Java application. To create a string, write String remark = “This is it! ”; In the above statement, “This is it! ” is a string literal, a series of characters. This string literal is assigned to a String object named remark. The string literal can be displayed using the Java output statements, System. out. print( ); or System. out. rintln( );. Likewise, a String object can be created by using the new operator and a constructor method. ex: char [ ] remarkArray = {‘A’,’w’,’e’,’s’,’o’,’m’,’e’,’! ’}; String remarkString = new String(remarkArray); System. out. println(remarkString); The last statement displays the string “Awesome! ”. String length The String class has a method named, length( ), which returns the number of characters in a string object. In the example below, the length of the string object named len is 7: ex: String palindrome = “racecar”; int len = palindrome. length( ); ote: a palindrome is a word or sentence that is spelled the same forward and backward. Case and punctuation is ignored. Here is a short application to reverse a palindrome string. /** * className: Palindrome * This application will print a palindrome word. * * @author: The Java Tutorials * @url: http://docs. oracle. com/javase/tutorial/java/data/strings. html * @comments: Roberto U. Acepcion Jr. */ public class Palindrome { public static void main(String[ ] args) { String palindrome = “Dot saw I was Tod”;//string is assigned to a String object named palindrome int len = palindrome. ength( );//counts the number of characters in the string char[ ] tempCharArray = new char[len]; //uses the value of len as the number of elements char[ ] charArray = new char[len]; // put original string in an array of chars – first loop for (int i = 0; i < len; i++)//uses the value of len to control the loop { tempCharArray[i] = palindrome. charAt(i); //assigns each character to an element in the array } // reverse array of chars – second loop for (int j = 0; j < len; j++)//uses the value of len to control the loop { harArray[j] = tempCharArray[len – 1 – j]; //assigns each character to an element in the array } String reversePalindrome = new String(charArray); //creates a new String object //with contents of second array System. out. println(reversePalindrome);//displays the reversed string } } Output: doT saw I was toD How the program works: 1. To reverse the string, the program converts the string to an array of characters (first for loop( ) ) 2. Then reverses the contents of the first array and puts it into a second array (second for loop( ) ) 3.

Afterwards converts the contents of the second array back to a string and assigns it to a String object To shorten the codes, such as eliminating the first loop, use the String class method, getChars( ), to convert a string, or a portion of a string, into an array of characters: palindrome. getChars(0, len, tempCharArray, 0); String Concatenation The String class has a method for concatenating two strings: string1. concat(string2); This returns a new string that is string1 with string2 added to it at the end.

We Will Write a Custom Essay Specifically
For You For Only $13.90/page!


order now

You can also use the concat() method with string literals, as in: “My name is “. concat(“Rumplestiltskin”); Strings are more commonly concatenated with the + operator, as in “Hello,” + ” world” + “! ” which results in “Hello, world! “. The + operator is widely used in print statements. For example: String string1 = “saw I was “; System. out. println(“Dot ” + string1 + “Tod”); which prints Dot saw I was Tod Such a concatenation can be a mixture of any objects. For each object that is not a String, its toString() method is called to convert it to a String.

Note: The Java programming language does not permit literal strings to span lines in source files, so you must use the + concatenation operator at the end of each line in a multi-line string. For example: String quote = “Now is the time for all good ” + “men to come to the aid of their country. “; Breaking strings between lines using the + concatenation operator is, once again, very common in print statements. Create Format Strings You have seen the use of the printf() and format() methods to print output with formatted numbers.

The String class has an equivalent class method, format( ), that returns a String object rather than a PrintStream object. Using String’s static format( ) method allows you to create a formatted string that you can reuse, as opposed to a one-time print statement. For example, instead of System. out. printf(“The value of the float ” + “variable is %f, while ” + “the value of the ” + “integer variable is %d, ” + “and the string is %s”, floatVar, intVar, stringVar); you can write String fs; fs = String. format(“The value of the float ” + “variable is %f, while ” + “the value of the ” + integer variable is %d, ” + ” and the string is %s”, floatVar, intVar, stringVar); System. out. println(fs); Convert Strings to Numbers Frequently, a program ends up with numeric data in a string object—a value entered by the user, for example. The Number subclasses that wrap primitive numeric types ( Byte, Integer, Double, Float, Long, and Short) each provide a class method named valueOf( ) that converts a string to an object of that type. Here is an example, ValueOfDemo , that gets two strings from the command line, converts them to numbers, and performs arithmetic operations on the values: public class ValueOfDemo { ublic static void main(String[ ] args) { // this program requires two // arguments on the command line if (args. length == 2) { // convert strings to numbers float a = (Float. valueOf(args[0])). floatValue( ); float b = (Float. valueOf(args[1])). floatValue( ); // do some arithmetic System. out. println(“a + b = ” + (a + b)); System. out. println(“a – b = ” + (a – b)); System. out. println(“a * b = ” + (a * b)); System. out. println(“a / b = ” + (a / b)); System. out. println(“a % b = ” + (a % b)); } else { System. out. println(“This program ” + “requires two command-line arguments. ); } } } The following is the output from the program when you use 4. 5 and 87. 2 for the command-line arguments: a + b = 91. 7 a – b = -82. 7 a * b = 392. 4 a / b = 0. 0516055 a % b = 4. 5 Note: Each of the Number subclasses that wrap primitive numeric types also provides a parseXXXX() method (for example, parseFloat( )) that can be used to convert strings to primitive numbers. Since a primitive type is returned instead of an object, the parseFloat( ) method is more direct than the valueOf( ) method. For example, in the ValueOfDemo program, we could use: float a = Float. parseFloat(args[0]); loat b = Float. parseFloat(args[1]); Convert Numbers to Strings Sometimes you need to convert a number to a string because you need to operate on the value in its string form. There are several easy ways to convert a number to a string: int i; // Concatenate “i” with an empty string; conversion is handled for you. String s1 = ” ” + i; or // The valueOf class method. String s2 = String. valueOf(i); Each of the Number subclasses includes a class method, toString( ), that will convert its primitive type to a string. For example: int i; double d; String s3 = Integer. toString(i);

String s4 = Double. toString(d); The ToStringDemo example uses the toString( ) method to convert a number to a string. The program then uses some string methods to compute the number of digits before and after the decimal point: public class ToStringDemo { public static void main(String[ ] args) { double d = 858. 48; String s = Double. toString(d); int dot = s. indexOf(‘. ‘); System. out. println(dot + ” digits ” + “before decimal point. “); System. out. println( (s. length() – dot – 1) + ” digits after decimal point. “); } } The output of this program is: digits before decimal point. 2 digits after decimal point. 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 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: String anotherPalindrome = “Niagara.

O roar again! “; char aChar = anotherPalindrome. charAt(9); Indices begin at 0, so the character at index 9 is ‘O’, as illustrated in the following figure: 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: |The substring Methods in the String Class | |Method |Description |String substring(int beginIndex, int endIndex) |Returns a new string that is a substring of this string. The first integer argument | | |specifies the index of the first character. The second integer argument is the index| | |of the last character – 1. | |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. | 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); [pic] Other Methods for Manipulating Strings

Here are several other String methods for manipulating strings: |Other Methods in the String Class for Manipulating Strings | |Method |Description | |String[] split(String regex) |Searches for a match as specified by the string argument (which | |String[] split(String regex, int limit) |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 | | |untilendIndex – 1. | |String trim() |Returns a copy of this string with leading and trailing white space | | |removed. |String toLowerCase() |Returns a copy of this string converted to lowercase or uppercase. If | |String toUpperCase() |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. The following table describes the various string search methods. |The Search Methods in the String Class | |Method Description | |int indexOf(int ch) |Returns the index of the first (last) occurrence of the specified | |int lastIndexOf(int ch) |character. | |int indexOf(int ch, int fromIndex) |Returns the index of the first (last) occurrence of the specified | |int lastIndexOf(int ch, int fromIndex) |character, searching forward (backward) from the specified index. | |int indexOf(String str) |Returns the index of the first (last) occurrence of the specified | |int lastIndexOf(String str) |substring. |int indexOf(String str, int fromIndex) |Returns the index of the first (last) occurrence of the specified | |int lastIndexOf(String str, int fromIndex) |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: |Methods in the String Class for Manipulating Strings | |Method |Description | |String replace(char oldChar, char newChar) |Returns a new string resulting rom 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. |String replaceFirst(String regex, String replacement) |Replaces the first substring of this string that matches the given | | |regular expression with the given replacement. | An Example 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 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; xtensionSeparator = 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); } } 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. tml”; 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. [pic] Also, notice that the extension method uses dot + 1 as the argument to substring. If the period character (. ) is the last character of the string, dot + 1 is equal to the length of the string, which is one larger than the largest index into the string (because indices start at 0). This is a legal argument to substring because that method accepts an index equal to, but not greater than, the length of the string and interprets it to mean “the end of the string. ” Comparing Strings and Portions of Strings The String class has a number of methods for comparing strings and portions of strings. The following table lists these methods. Methods for Comparing Strings | |Method |Description | |boolean endsWith(String suffix) |Returns true if this string ends with or begins with the substring | |boolean startsWith(String prefix) |specified as an argument to the method. | |boolean startsWith(String prefix, int offset) |Considers the string beginning at the index offset, and | | |returns true if it begins with the substring specified as an argument. | |int compareTo(String anotherString) |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. | |int compareToIgnoreCase(String str) |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. |boolean equals(Object anObject) |Returns true if and only if the argument is a String object that | | |represents the same sequence of characters as this object. | |boolean equalsIgnoreCase(String anotherString) |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. |boolean regionMatches(int toffset, String other, int ooffset, int len)|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 ooffsetfor the other string. | |boolean regionMatches(boolean ignoreCase, int toffset, String other, |Tests whether the specified region of this string matches the | |int ooffset, int len) |specified region of the String argument. | |Region is of length len and begins at the index toffset for this | | |string and ooffsetfor the other string. | | |The boolean argument indicates whether case should be ignored; if | | |true, case is ignored when comparing characters. | |boolean matches(String regex) |Tests whether this string matches the specified regular expression. | |Regular expressions are discussed in the lesson titled “Regular | | |Expressions. ” | 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

x

Hi!
I'm Mack!

Would you like to get a custom essay? How about receiving a customized one?

Check it out