Java Tutorial/Data Type/String
Содержание
- 1 Arrays of Strings: Declare an array of String objects where the initial values determine the size of the array
- 2 Arrays of Strings: using "new" operator
- 3 Assign String variable to null
- 4 A string can be compared with a StringBuffer
- 5 Attempts to use string variable before it has been initialized
- 6 Comparing Two Strings
- 7 Create String with char array
- 8 Demo for escape
- 9 Demonstrate toUpperCase() and toLowerCase().
- 10 Get InputStream from a String
- 11 Length of a string
- 12 Remove a character at a specified position using String.substring
- 13 Remove leading and trailing white space from string
- 14 String class constructors
- 15 String class substring methods
- 16 String Concatenation
- 17 String HashCode
- 18 String Literals
- 19 toLowerCase and toUpperCase
- 20 To remove a character
- 21 Using String class
- 22 Using trim() to process commands.
Arrays of Strings: Declare an array of String objects where the initial values determine the size of the array
<source lang="java">
public class MainClass {
public static void main(String[] arg) { String[] colors = {"red", "orange", "yellow", "green", "blue", "indigo", "violet"}; for(String s: colors){ System.out.println(s); } }
}</source>
red orange yellow green blue indigo violet
Arrays of Strings: using "new" operator
<source lang="java">
public class MainClass {
public static void main(String[] arg) { String[] names = new String[5]; names[0] = "qwert"; names[1] = "yuiop"; names[2] = "asdfg"; names[3] = "hjkl"; names[4] = "zxcvb"; System.out.println(names[4]); }
}</source>
Assign String variable to null
The literal null is an object reference value that does not refer to anything.
<source lang="java">
public class MainClass {
public static void main(String[] arg) { String s = null; System.out.println(s); }
}</source>
A string can be compared with a StringBuffer
<source lang="java">
public class Main {
public static void main(String[] argv) throws Exception { String s1 = "s1"; StringBuffer sbuf = new StringBuffer("a"); boolean b = s1.contentEquals(sbuf); }
}</source>
Attempts to use string variable before it has been initialized
<source lang="java">
public class MainClass {
public static void main(String[] arg) { String s = null; System.out.println(s.length()); }
}</source>
Exception in thread "main" java.lang.NullPointerException at MainClass.main(MainClass.java:6)
Comparing Two Strings
<source lang="java">
public class MainClass {
public static void main(String[] args) { String s1 = "Java"; String s2 = "Java"; if (s1.equals(s2)) { System.out.println("=="); } }
}</source>
Create String with char array
<source lang="java">
/*
* Copyright (c) 1995 - 2008 Sun Microsystems, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * - Neither the name of Sun Microsystems nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
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 - 1 - j]; } String reversePalindrome = new String(charArray); System.out.println(reversePalindrome); }
}</source>
Demo for escape
<source lang="java">
public class MainClass{
public static void main(String[] a){ String s = "John \"The Great\" Monroe"; }
}</source>
Demonstrate toUpperCase() and toLowerCase().
<source lang="java">
class ChangeCase {
public static void main(String args[]) { String s = "This is a test."; System.out.println("Original: " + s); String upper = s.toUpperCase(); String lower = s.toLowerCase(); System.out.println("Uppercase: " + upper); System.out.println("Lowercase: " + lower); }
}</source>
Get InputStream from a String
<source lang="java">
import java.io.ByteArrayInputStream; public class Main {
public static void main(String[] argv) throws Exception { byte[] bytes = "asdf".getBytes("UTF8"); new ByteArrayInputStream(bytes); }
}</source>
Length of a string
<source lang="java">
public class Main {
public static void main(String[] args) { String name = "Java"; int length = name.length(); System.out.println("Length = " + length); }
}</source>
Remove a character at a specified position using String.substring
<source lang="java">
public class Main {
public static void main(String args[]) { String str = "this is a test"; System.out.println(removeCharAt(str, 3)); } public static String removeCharAt(String s, int pos) { return s.substring(0, pos) + s.substring(pos + 1); }
}</source>
Remove leading and trailing white space from string
<source lang="java">
public class Main {
public static void main(String[] args) { String text = " t "; System.out.println("Result: " + text.trim()); }
}</source>
String class constructors
<source lang="java">
public class MainClass {
public static void main( String args[] ) { char charArray[] = { "b", "i", "r", "t", "h", " ", "d", "a", "y" }; String s = new String( "hello" ); // use String constructors String s1 = new String(); String s2 = new String( s ); String s3 = new String( charArray ); String s4 = new String( charArray, 6, 3 ); System.out.printf("s1 = %s\ns2 = %s\ns3 = %s\ns4 = %s\n", s1, s2, s3, s4 ); }
}</source>
s1 = s2 = hello s3 = birth day s4 = day
String class substring methods
<source lang="java">
public class MainClass {
public static void main( String args[] ) { String letters = "abcdefghijklmabcdefghijklm"; // test substring methods System.out.printf( "Substring from index 20 to end is \"%s\"\n", letters.substring( 20 ) ); System.out.printf( "%s \"%s\"\n", "Substring from index 3 up to, but not including 6 is", letters.substring( 3, 6 ) ); } // end main
}</source>
Substring from index 20 to end is "hijklm" Substring from index 3 up to, but not including 6 is "def"
String Concatenation
<source lang="java">
public class MainClass {
public static void main( String args[] ) { String s1 = new String( "Happy " ); String s2 = new String( "Birthday" ); System.out.printf( "s1 = %s\ns2 = %s\n\n",s1, s2 ); System.out.printf( "Result of s1.concat( s2 ) = %s\n", s1.concat( s2 ) ); System.out.printf( "s1 after concatenation = %s\n", s1 ); } // end main
}</source>
s1 = Happy s2 = Birthday Result of s1.concat( s2 ) = Happy Birthday s1 after concatenation = Happy
String HashCode
<source lang="java">
public class MainClass {
public static void main(String[] args) { System.out.println("Hello".hashCode()); System.out.println("Hello".hashCode()); }
} /**/</source>
69609650 69609650
String Literals
You can compose long string literals by using the plus sign to concatenate two string literals.
<source lang="java">
public class MainClass {
public static void main(String[] a) { String s1 = "1 " + "2"; String s2 = s1 + " = 3"; System.out.println(s1); System.out.println(s2); }
}</source>
1 2 1 2 = 3
toLowerCase and toUpperCase
<source lang="java">
public class MainClass {
public static void main( String args[] ) { String s1 = new String( "hello" ); String s2 = new String( "GOODBYE" ); String s3 = new String( " spaces " ); System.out.printf( "s1 = %s\ns2 = %s\ns3 = %s\n\n", s1, s2, s3 ); // test toLowerCase and toUpperCase System.out.printf( "s1.toUpperCase() = %s\n", s1.toUpperCase() ); System.out.printf( "s2.toLowerCase() = %s\n\n", s2.toLowerCase() ); }
}</source>
s1 = hello s2 = GOODBYE s3 = spaces s1.toUpperCase() = HELLO s2.toLowerCase() = goodbye
To remove a character
<source lang="java">
public class Main {
public static void main(String args[]) { String str = "this is a test"; System.out.println(removeChar(str,"s")); } public static String removeChar(String s, char c) { String r = ""; for (int i = 0; i < s.length(); i++) { if (s.charAt(i) != c) r += s.charAt(i); } return r; }
} //thi i a tet</source>
Using String class
- In Java, ordinary strings are objects of the class String.
- A String object represents a string, i.e. a piece of text.
- String is a sequence of Unicode characters.
- A string literal is a sequence of characters between double quotes.
- String objects are immutable.
Using trim() to process commands.
<source lang="java">
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class UseTrim {
public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; System.out.println("Enter "stop" to quit."); System.out.println("Enter letter: "); do { str = br.readLine(); str = str.trim(); if (str.equals("I")) System.out.println("I"); else if (str.equals("M")) System.out.println("M"); else if (str.equals("C")) System.out.println("C."); else if (str.equals("W")) System.out.println("W"); } while (!str.equals("stop")); }
}</source>