字符串是一系列字符。 在java中,String的对象是不可变的,这意味着一个常量,一旦创建就无法更改。
创建一个字符串
创建一个字符串有两种方式如下:
- String literal
String webUrl="1024rank.com";
2.Using new keyword
String webUrlNew= new String("1024rank.com");
构造函数
String(byte [] byte_arr) - 通过字节数组构造一个新的String。它使用平台的默认字符集进行解码
byte[] demoArray = { 102, 101, 107, 115}; String s =new String(demoArray); //1024rank.com
String(byte [] byte_arr,Charset char_set) - 通过解码字节数组构造一个新的String。它使用char_set进行解码。
byte[] demoArray = { 102, 101, 107, 115}; Charset cs = Charset.defaultCharset(); String s =new String(demoArray,cs); //1024rank.com
String(byte [] byte_arr,String char_set_name) - 通过字节数组构造一个新的String。它使用char_set_name进行解码。它看起来类似于上面的结构,它们在类似的函数之前,但它将String(包含char_set_name)作为参数,而上面的构造函数采用CharSet。
byte[] demoArray = { 102, 101, 107, 115}; String s =new String(demoArray,"US-ASCII"); //1024rank.com
String(byte [] byte_arr,int start_index,int length) - 根据start_index(起始位置)和length(起始位置的字符数),从bytes数组构造一个新字符串
byte[] demoArray = { 102, 101, 107, 115}; String s =new String(demoArray,1,3); //1024rank.com System.out.print(s);
String(char [] char_arr) - 从给定的Character数组中分配一个新的String
char charArr[] = {'1', '0', '2', '4', 'r','a','n','k'}; String s = new String(charArr); //1024rank.com System.out.print(s);
String(StringBufferprouffuff) - 从fixuffer中的字符串分配一个新字符串
StringBuffer buffer = new StringBuffer("1024rank.com"); String s = new String(buffer); System.out.print(s);
String(StringBuilder s_builder) - 从s_builder中的字符串分配新字符串
StringBuilder builder = new StringBuilder("1024rank.com"); String s = new String(builder); //1024rank System.out.print(s);
String Methods
int length():返回String中的字符数。
"1024rank.com".length();
Char charAt(int i):返回第i个索引处的字符。
"1024rank.com".charAt(3);
String substring(int i,int j):返回从i到j-1索引的子字符串。
"1024rank.com".substring(3);
String substring(int i,int j):返回从i到j-1索引的子字符串。
"1024rank.com".substring(2, 5);
String concat(String str):将指定的字符串连接到此字符串的末尾。
String s1 = ”1024”; String s2 = ”rank”; String output = s1.concat(s2);
int indexOf(String s):返回指定字符串第一次出现的字符串中的索引。
String s = ”san sui ran”; int output = s.indexOf(“sui”);
int indexOf(String s,int i):从指定的索引处开始,返回指定字符串第一次出现的字符串中的索引。
String s = ”san sui ran”; int output = s.indexOf(‘a’,3);
Int lastindexOf(int ch):返回指定字符串最后一次出现的字符串中的索引。
String s = ”san sui ran”; int output = s.lastindexOf(‘a’);
boolean equals(Object otherObj):将此字符串与指定的对象进行比较。
Boolean out= “1024Rank”.equalsIgnoreCase(“1024rank”); // returns true Boolean out = “1024Rank”.equalsIgnoreCase(“1024rank”); // returns true
int compareTo(String anotherString):按字典顺序比较两个字符串。
int out = s1.compareTo(s2);
int compareToIgnoreCase(String anotherString):按字典顺序比较两个字符串,忽略大小写考虑因素。
int out = s1.compareToIgnoreCase(s2);
String toLowerCase():将String中的所有字符转换为小写。
String word1 = “HeLLo”; String word3 = word1.toLowerCase(); // returns “hello"
String toUpperCase():将String中的所有字符转换为大写。
String word1 = “HeLLo”; String word2 = word1.toUpperCase(); // returns “HELLO”
String trim():通过删除两端的空格来返回String的副本。它不会影响中间的空白。
String word1 = “ 1024 rank “; String word2 = word1.trim();
String replace (char oldChar, char newChar): 通过将所有出现的oldChar替换为newChar来返回新字符串。
String s2 = “2014rank”.replace(‘2’ ,’1’);
问什么String不可变?
问什么要设计不可变的呢?
1. 字符串常量池的需要
本文版权归是三僡然所有,转载请标明出处。欢迎转载,欢迎评论,欢迎分享。如果你有文章想分享可以联系我。