Java中的String类

作者: Arvin Chen 分类: Java 来源: Break易站(www.breakyizhan.com)

字符串String是一系列字符。在java中,String对象是不可变的,这意味着一个常量,一旦创建就不能更改。

创建一个字符串String

有两种方法可以在Java中创建字符串:

  • 字符串
    String s =“www.breakyizhan.com”;
  • 使用新的关键字
    String s = new String(“www.breakyizhan.com”);

构造函数

  1. String(byte [] byte_arr) - 通过解码字节数组构造一个新的String 。它使用平台的默认字符集进行解码。
    例:

    byte [] b_arr = {71,101,101,107,115};
    String s_byte = new String(b_arr); 
    
  2. String(byte [] byte_arr,Charset char_set) - 通过解码字节数组构造一个新的String 。它使用char_set进行解码。
    例:

    byte [] b_arr = {71,101,101,107,115};
    Charset cs = Charset.defaultCharset();
    String s_byte_char = new String(b_arr,cs); 
    
  3. String(byte [] byte_arr,String char_set_name) - 通过解码字节数组构造一个新的String 。它使用char_set_name进行解码。
    它看起来类似于上面的构造,并且它们在类似的函数之前,但它将String(其中包含char_set_name)作为参数,而上述构造函数接受CharSet。
    例:

    byte [] b_arr = {71,101,101,107,115};
    String s = new String(b_arr,“US-ASCII”); 
    
  4. String(byte [] byte_arr,int start_index,int length) - 根据start_index(起始位置)长度(从起始位置起的字符数字节数组构造一个新字符串例:
    byte [] b_arr = {71,101,101,107,115};
    String s = new String(b_arr,1,3); 
    
  5. char(byte[] byte_arr,INT START_INDEX,INT length,Charset char_set) -从所述构建新的字符串的字节数组取决于START_INDEX(起始位置)长度(从起始位置的字符数) .Uses char_set用于解码。
    例:

    byte [] b_arr = {71,101,101,107,115};
    Charset cs = Charset.defaultCharset();
    String s = new String(b_arr,1,3,cs); 
    
  6. cha(byte[] byte_arr,INT START_INDEX,INT length,char char_set_name) -从所述构建新的字符串的字节数组取决于START_INDEX(起始位置)长度(从起始位置的字符数) .Uses char_set_name用于解码。
    例:

    byte [] b_arr = {71,101,101,107,115};
    String s = new String(b_arr,1,4,“US-ASCII”); 
    
  7. String(char [] char_arr) - 从给定的字符数组中分配一个新的字符串
    示例:

    char char_arr [] = {'G','e','e','k','s'};
    String s = new String(char_arr); 
    
  8. String(char [] char_array,int start_index,int count) - 从给定字符数组中分配字符串,但从start_index中选择数字字符。例:
    char char_arr [] = {'G','e','e','k','s'};
    String s = new String(char_arr,1,3);
    
  9. String(int [] uni_code_points,int offset,int count) - 从uni_code_array中分配一个String,但从start_index中选择count个字符。例:
    int [] uni_code = {71,101,101,107,115};
    String s = new String(uni_code,1,3); 
    
  10. String(StringBuffer s_buffer) - 从s_buffer中的字符串中分配一个新字符串
    示例:

    String s_buffer =“Geeks”;
    String s = new String(s_buffer); 
    
  11. String(StringBuilder s_builder) - 从s_builder中的字符串中分配一个新字符串
    示例:

    String s_builder =“Geeks”;
    String s = new String(s_builder); 
    

字符串String的方法

  1. int length(): 返回字符串中的字符数。
    “GeeksforGeeks”。长度(); //返回13
  2. Char charAt(int i): 返回第i 索引处的字符。
    “GeeksforGeeks” .charAt(3); //返回'k'
  3. String substring(int i): 从第i   索引字符返回子字符串结束。
    “GeeksforGeeks” .substring(3); //返回“ksforGeeks”
  4. String substring(int i,int j): 返回从i到j-1索引的子字符串。
    “GeeksforGeeks”.substring(2,5); //返回“eks”
  5.  字符串concat(String str):将 指定的字符串连接到此字符串的末尾。
     String s1 = ”Geeks”;
     String s2 = ”forGeeks”;
     String output = s1.concat(s2); // returns “GeeksforGeeks”
  6. int indexOf(String s): 返回指定字符串第一次出现的字符串内的索引。
     String s = ”Learn Share Learn”;
     int output = s.indexOf(“Share”); // returns 6
  7. int indexOf(String s,int i): 从指定索引处开始,返回指定字符串第一次出现的字符串内的索引。
     String s = ”Learn Share Learn”;
     int output = s.indexOf(‘a’,3);// returns 8
  8. Int lastindexOf(int ch): 返回指定字符串最后一次出现的字符串内的索引。
     String s = ”Learn Share Learn”;
     int output = s.lastindexOf(‘a’); // returns 14
  9. boolean equals(Object otherObj): 将此字符串与指定的对象进行比较。
     Boolean out = “Geeks”.equals(“Geeks”); // returns true
     Boolean out = “Geeks”.equals(“geeks”); // returns false
  10. boolean equalsIgnoreCase(String anotherString): 将字符串与另一个字符串进行比较,忽略大小写注意事项。
     Boolean out= “Geeks”.equalsIgnoreCase(“Geeks”); // returns true
     Boolean out = “Geeks”.equalsIgnoreCase(“geeks”); // returns true
  11.  int compareTo(String anotherString):按 字典顺序比较两个字符串。
     int out = s1.compareTo(s2);  // where s1 ans s2 are
                                 // strings to be compared
    
     This returns difference s1-s2. If :
     out < 0  // s1 comes before s2
     out = 0  // s1 and s2 are equal.
     out >0   // s1 comes after s2.
  12. int compareToIgnoreCase(String anotherString):按 字典顺序比较两个字符串,忽略大小写注意事项。
     int out = s1.compareToIgnoreCase(s2);  
    //其中s1和s2是 
    //字符串进行比较
    
     这会返回差异s1-s2。如果:
     out <0 // s1在s2之前
     out = 0 // s1和s2是相等的。
     out> 0 // s1在s2之后。
    

    注意 - 在这种情况下,它不会考虑字母大小写(它会忽略它是大写还是小写)。

  13. String toLowerCase(): 将字符串中的所有字符转换为小写。
    String word1 = “HeLLo”;
    String word3 = word1.toLowerCase(); // returns “hello"
  14. String toUpperCase(): 将字符串中的所有字符转换为大写。
    String word1 = “HeLLo”;
    String word2 = word1.toUpperCase(); // returns “HELLO”
  15. String trim(): 通过删除两端的空格来返回字符串的副本。它不影响中间的空格。
    String word1 = “ Learn Share Learn “;
    String word2 = word1.trim(); // returns “Learn Share Learn”
  16.  字符串替换(字符oldChar,焦炭newChar): 通过更换所有出现返回新的字符串oldCharnewChar。
    String s1 =“feeksforfeeks”;
    String s2 =“feeksforfeeks”.replace('f','g'); //返回“geeksgorgeeks”
    

    注意: - s1仍然是feeksforfeeks和s2是geeksgorgeeks

程序来说明所有字符串方法:

// Java code to illustrate different constructors and methods
// String class.
 
import java.io.*;
import java.util.*;
class Test
{
    public static void main (String[] args)
    {
        String s= "GeeksforGeeks";
        // or String s= new String ("GeeksforGeeks");
 
        // Returns the number of characters in the String.
        System.out.println("String length = " + s.length());
 
        // Returns the character at ith index.
        System.out.println("Character at 3rd position = "
                           + s.charAt(3));
 
        // Return the substring from the ith  index character
        // to end of string
        System.out.println("Substring " + s.substring(3));
 
        // Returns the substring from i to j-1 index.
        System.out.println("Substring  = " + s.substring(2,5));
 
        // Concatenates string2 to the end of string1.
        String s1 = "Geeks";
        String s2 = "forGeeks";
        System.out.println("Concatenated string  = " +
                            s1.concat(s2));
 
        // Returns the index within the string
        // of the first occurrence of the specified string.
        String s4 = "Learn Share Learn";
        System.out.println("Index of Share " +
                           s4.indexOf("Share"));
 
        // Returns the index within the string of the
        // first occurrence of the specified string,
        // starting at the specified index.
        System.out.println("Index of a  = " +
                           s4.indexOf('a',3));
 
        // Checking equality of Strings
        Boolean out = "Geeks".equals("geeks");
        System.out.println("Checking Equality  " + out);
        out = "Geeks".equals("Geeks");
        System.out.println("Checking Equality  " + out);
 
        out = "Geeks".equalsIgnoreCase("gEeks ");
        System.out.println("Checking Equality" + out);
 
        int out1 = s1.compareTo(s2);
        System.out.println("If s1 = s2" + out);
 
        // Converting cases
        String word1 = "GeeKyMe";
        System.out.println("Changing to lower Case " +
                            word1.toLowerCase());
 
        // Converting cases
        String word2 = "GeekyME";
        System.out.println("Changing to UPPER Case " +
                            word1.toUpperCase());
 
        // Trimming the word
        String word4 = " Learn Share Learn ";
        System.out.println("Trim the word " + word4.trim());
 
        // Replacing characters
        String str1 = "feeksforfeeks";
        System.out.println("Original String " + str1);
        String str2 = "feeksforfeeks".replace('f' ,'g') ;
        System.out.println("Replaced f with g -> " + str2);
    }
}

输出:

String length = 13
Character at 3rd position = k
Substring ksforGeeks
Substring = eks
Concatenated string = GeeksforGeeks
Index of Share 6
Index of a = 8
Checking Equality false
Checking Equality true
Checking Equalityfalse
If s1 = s2false
Changing to lower Case geekyme
Changing to UPPER Case GEEKYME
Trim the word Learn Share Learn
Original String feeksforfeeks
Replaced f with g -> geeksgorgeeks
  •   本文标题:Java中的String类 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/3928.html
    扫描二维码添加微信 
  • ,领取淘宝优惠券,淘宝购物更优惠。现在添加微信,还可以领取机械键盘优惠券!添加微信后,分享淘宝选中的机械键盘给淘宝机器人即可领取!
    支持我们,就用微信淘宝!

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注

    更多阅读