JAVA(10)字符串处理

字符串处理

定义字符串
  • 使用String;
  • String str = "hello";
  • String str; str = "hello";
连接字符串
  • 使用" + " 号 连接
  • String str = "welcome to " + " beautiful "+"ShenZhen";
  • 使用concat连接
  • String info = "中国"; info.concat("广东").concat("深圳");
获取字符串长度
  • 使用字符串.length();
  • String str = "helloWorld"; str.length();
转换大小写
  • 大写使用toUpperCase()
  • String str = "hello"; str.toUpperCase();
  • 小写使用toLowerCase()
  • String str = "hello"; str.toLowerCase();
去除空格
  • 使用字符串.trim();
  • String str = " hello "; str.trim();
提取子字符串
  • substring(int beginIndex) 提取从索引位置开始至结尾处的字符串部分。
  • String str = " 我爱 Java 编程"; String newstr = str.substring(3);
  • substring(int beginIndex, int endIndex) 提取从索引位置开始至指定的位置的字符串部分。
  • String str = " 我爱 Java 编程"; String newstr = str.substring(3,7);
字符串分割
  • str.split(); 按指定的分割符对目标字符串进行分割,分割后的内容存放在字符串数组中。
  • 两种形式str.split(String sign); 或者 str.split(String sign, int limit);
  • String Colors = "Red,Black,White,Yellow,Blue";
  • String[] arr1 = Colors.split(",");
  • String[] arr2 = Colors.split(",",3);
字符串的替换
  • 字符串.replace(String oldstr, String newstr) 替换匹配到的字符串成一个新字符串
  • String words = "hello world, hello java";
  • words.replace("hello","你好");
  • 字符串.replaceFirst(String regex, String replacement) 替换匹配到的第一个字符串换成新字符串
  • String words = "hello java,hello javascript";
  • String newWords = words.replaceFirst("hello", "你好");
  • 字符串.replaceAll(String regex, String replacement) 将目标的字符串中匹配正则表达式的所有子字符串替换成新字符串
  • String words = "hello java, hello javascript";
  • newStr = words.replaceAll("hello", "你好");
字符串的比较

equals()equalsIgnoreCase()compareTo()

equals() 逐个比较两个字符串的每个字符是否相同, 字符串的大小写也在检查范围内
  • 字符串1.equals(字符串2)
  • String str1 = "abc"; String str2 = "ABC"; String str3 = new String("abc");
  • str1.equals(str2) // false
  • str1.equals(str3) // true
equalsIgnoreCase()
  • 和equals方法完全相同,唯一不同的是equalsIgnoreCase()不区分大小写。
  • String str1 = 'abc'; String str2 = 'ABC';
  • str1.equalsIgnoreCaseI(str2); // true
compareTo()
  • 用于按字典顺序比较两个字符串的大小,比较是基于字符串各个字符的Unicode值。
  • str.compareTo(String otherstr);
  • 它会按字典顺序将 str 表示的字符序列与 otherstr 参数表示的字符序列进行比较。如果按字典顺序 str 位于 otherster 参数之前,比较结果为一个负整数;如果 str 位于 otherstr 之后,比较结果为一个正整数;如果两个字符串相等,则结果为 0。
  • 提示:如果两个字符串调用 equals() 方法返回 true,那么调用 compareTo() 方法会返回 0。
  • String str = "A"; String str1 = "a";
  • str.compareTo(str1);
字符串查找
str.indexOf();
  • indexOf()和lastIndexOf()方法用于在字符串中获取匹配字符串的索引值。
  • indexOf方法用于返回字符串在指定字符串中首次出现的索引位置,如果能找到则返回索引值,否则返回-1;
  • str.indexOf(value);
  • str.indexOf(value, int fromIndex)
  • str 表示指定字符串,value表示待查找的字符串;fromIndex表示查找时的起始索引,如果不指定,则默认从指定字符串中的开始位置(默认为0)开始查找。
  • String s = "hello Java"; int size = s.indexOf("v");
str.lastIndexOf();
  • 用于返回字符串在指定字符串中最后一次出现的索引位置,如果能找到则返回索引,否则返回-1;
  • str.lastIndexOf(value);
  • str.lastIndexof(value, int fromIndex)
  • lastIndexOf() 方法的查找策略是从右往左查找,如果不指定起始索引,则默认从字符串的末尾开始查找。
根据索引查找charAt()
  • 字符串名.charAt(索引值)
  • 可以在字符串内根据指定的索引查找字符
  • String str = "today,monday,sunday";
  • str.charAt(0); str.charAt(3);
字符串的加密解密
  • 自定义函数实现?

StringBuffer类

  • 因为 StringBuffer 类是可变字符串类,创建 StringBuffer 类的对象后可以随意修改字符串的内容。每个 StringBuffer 类的对象都能够存储指定容量的字符串,如果字符串的长度超过了 StringBuffer 类对象的容量,则该对象的容量会自动扩大。

创建StringBuffer类

//定义一个空的字符串缓冲区,含有16个字符的容量
StringBuffer str1=new StringBuffer();
//定义一个含有10个字符容量的字符串缓冲区
StringBuffer str2=new StringBuffer(10);
//定义一个含有(16+4)的字符串缓冲区,"青春无悔"为4个字符
StringBuffer str3=new StringBuffer("青春无悔");
/*
*输出字符串的容量大小
*capacity()方法返回字符串的容量大小
*/
System.out.println(str1.capacity());    //输出 16
System.out.println(str2.capacity());    //输出 10
System.out.println(str3.capacity());    //输出 20

追加字符串

  • StringBuffer类的append()方法用于向原有StringBuffer对象中追加字符串。
  • StringBuffer 对象.append(String str);
StringBuffer buffer = new StringBuffer("hello,");
String str = "world";
buffer.append(str);
System.out.println(buffer.substring(0));     // hello,world

** 替换字符串**

  • StringBuffer类的setCharAt() 用于在字符串的指定索引位置替换一个字符。
  • StringBuffer 对象.setCharAt(int index, char ch);
  • 该方法是修改对象中索引值为index位置的字符为新的字符ch。
StringBuffer  str = new StringBuffer("hello");
str.setCharAt(1,"E");
System.out.println(str);     //hEllo
str.setCharAt(0,"H"):
System.out.println(str);  // HEllo

反转字符串

  • StringBuffer类中的reverse()方法将字符串序列用其反转的形式取代。
  • StringBuffer 对象.reverse();
StringBuffer  str = new StringBuffer("java");
str.reverse();
System.out.println(str);    // avaj

删除字符串

  • StringBuffer 提供deleteCharAt() 和 delete() 删除字符串的方法。
  • deleteChartAt()方法用于移除序列中指定位置的字符
  • StringBuffer 对象.deleteCharAt(int index);
StringBuffer  str = new StringBuffer("she");
str.deleteCharAt(2);
System.out.println(str);  //sh
  • delete 方法用于移除序列中子字符串的字符
  • StringBuffer 对象.delete(int start, int end);
  • start表示要删除字符的起始索引(包括索引值对应的字符),end表示要删除字符串的结束索引值。该方法作用是删除指定区域以内的所有字符。 取值范 [2,5) 包含前部分,不包含后部分
StringBuffer sb=new StringBuffer("hello jack");
sb.delete(2,5);
System.out.println(sb);    //输出:he jack
sb.delete(2,5);
System.out.println(sb);    //输出:heck

你可能感兴趣的:(JAVA(10)字符串处理)