String类的一些方法
字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。
String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了。
如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。
因此,剑指offer的question4需要将字符串存入数组再进行修改操作。
字符串转字符数组
package String; /** * * @author crane * **字符串转字符数组 * */ public class StringDemo1 { public static void main(String[] args) { String str = "hello"; char[] data = str.toCharArray(); for(int i = 0; i < data.length; i++) { System.out.print(data[i] ); if(str.charAt(data.length-1) != data[i]) { System.out.print("、"); } } } }
运行结果:
字符串转字节数组
package String; /** * * @author crane * **字符串转字节数组 * */ public class StringDemo2 { public static void main(String[] args) { String str = "helloworld"; byte[] data = str.getBytes(); for(int x = 0; x < data.length; x++) { data[x] -= 32; } System.out.println(new String(data)); System.out.println(new String(data,1,7)); } }
运行结果:
字符串的输入+比较
package String; /** * * @author crane * **字符串的输入+比较 * */ import java.util.Scanner; public class StringDemo3 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); try { System.out.println("请输入第一个字符串"); String stra = scan.next(); System.out.println("请输入第二个字符串"); String strb = scan.next(); System.out.println(stra.compareTo(strb)); if(stra.compareTo(strb)>0) { System.out.println(stra+"大于"+strb); } else if(stra.compareTo(strb)<0){ System.out.println(stra+"小于"+strb); } else { System.out.println(stra+"等于"+strb); } }catch(Exception e) { System.out.println("error"); } finally { scan.close(); } } }
运行结果:
split方法
1 /** 2 * 3 * @author crane 4 * 5 *split方法用于拆分字符串,参数是拆分字符串的分隔符 6 *str.split(" "); 7 *参数为空则按字符全部拆分 8 */ 9 public class StringDemo6 { 10 public static void main(String args[]) { 11 String str = "hello yootk nihao mldn"; 12 String result[] = str.split(" "); 13 for(int x = 0; x < result.length; x++) { 14 System.out.print(result[x]+" 、"); 15 } 16 System.out.println(""); 17 18 String resultA[] = str.split(""); 19 for(int x = 0; x < resultA.length; x++) { 20 System.out.print(resultA[x] + "、"); 21 } 22 } 23 }
运行结果:
replace方法
1 package String; 2 /** 3 * 4 * @author crane 5 * 6 *replace方法用于字符串内的查找替换 7 **参数1为待替换内容,参数2为替换为什么内容 8 *replaceAll方法用于替换字符串内所有符合条件的子串 9 **replaceAll是支持正则表达式,第一个参数可以用正则表达式描述 10 * 11 *replace和replaceAll都是替换整个字符串的内容 12 * 13 *replaceFirst方法用于替换字符串中第一个匹配的子串的内容 14 */ 15 16 public class StringDemo5 { 17 public static void main(String[] args) { 18 String str = "helloworld,hello"; 19 String resultA = str.replace("ll", "H"); 20 String resultB = str.replaceAll("l", "_"); 21 String resultC = str.replaceFirst("l", "_"); 22 System.out.println(resultA); 23 System.out.println(resultB); 24 System.out.println(resultC); 25 26 } 27 }
运行结果:
indexOf方法
package String; /** * * @author crane * *index of查找方法 **如果是一个参数,返回这个子串在字符串中的位置 **如果是两个参数,第一个参数是查找的子串,第二个参数是查找的位置,从第几个元素开始查找 * *lastIndexOf从后往前查找 * *contains方法也可以查找,有则返回1,没有则返回0 * */ public class StringDemo4 { public static void main(String[] args) { String str = "helloworld"; System.out.println(str.indexOf("world")); System.out.println(str.indexOf("l")); System.out.println(str.indexOf("l",6)); System.out.println(str.lastIndexOf("l")); if(str.indexOf("world") != -1) { System.out.println("str中有world"); } if(str.contains("worlc")) { System.out.println("str 中有world"); } else { System.out.println("str 中没有worlc"); } } }
运行结果: