字符串

2020-05-18 16:28:14来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

字符串

一、String类 在java中字符串作为String类的实例来处理
  • 声名字符串(java中,字符串必需包含在一对双引号""之内
String str;
  • 创建字符串
char a[] = {'g','o','o','d'}; //字符数组 String s = new String(a); //等价于 String s = new String("good");   char a[] = {'s','t','u','d','e','n','t'}; String s = new String(a, 2, 4); //等价于 String s = new String("uden");   String str1,str2; str1 = "We are student"; str2 = "We are student";
  • 连接多个字符串
使用"+"连接多个字符串(java中一句相连的字符串不能分开在两行中写,如果需要在两行中写,在第一行行尾处加上"+"连接) String str3 = str1 + str2;
  • 连接其他数据类型
字符串也可以同其他基本数据类型进行连接,连接会将这些数据直接转换成字符串。 public static void example4() {     int booktime = 4;     float practice = 2.5f;       System.out.println("我每天花费" + booktime + "小时看书;" + practice + "小时上机练习;");     System.out.println("我每天花费" + booktime + "小时看书;" + (practice+booktime) + "小时上机练习;"); }   二、获取字符串信息 字符串作为对象,可通过相应的方法获取字符串的有效信息
  • 获取字符串长度
String str = "we are student"; int size = str.length();
  • 字符串查找
indexOf(); //返回字符或字符串在另一字符串中首次出现的位置 lastIndexOf(); //返回字符或字符串在另一字符串中最后一次出现的位置   public static void example5() {     String stu = "we are students";     System.out.println(stu.indexOf('t'));     System.out.println(stu.indexOf("tu"));     System.out.println(stu.lastIndexOf('t'));     System.out.println(stu.length()); }
  • 获取指定索引位置的字符串
//使用charAt()方法可将指定索引处的字符返回   String str = "hello world"; char mychar = str.charAt(6);   三、字符串操作
  • 获取字符串
//String类的substring()方法可以对字符串进行截取 //substring(int beginIndex, int endIndex);   String str = "hello world"; System.out.println(str.substring(6,9));   str = "hello world"; System.out.println(str.substring(6));
  • 去除空格
//str.trim();   String str = " java class "; System.out.println(str.length());   str = str.trim(); System.out.println(str.length());
  • 字符串替换
//str.replace(char oldChar, char newChar);   String str = "I like php"; str = str.replace("php", "java"); System.out.println(str);
  • 判断字符串的开始与结尾
//判断字符串是否以指定的内容开始或结束。返回boolean //startsWith(); //endsWith();   String str = "I like php"; System.out.println(str.startsWith("I")); System.out.println(str.startsWith("i")); System.out.println(str.endsWith("php"));
  • 判断字符串是否相等
  1. 对字符串对象进行比较不能简单的使用比较运算符"==",因为比较运算符是比较两个字符串的地址是否相同。即使两个字符串的内容相同,两个对象的内存地址也是不同的,使用比较运算符仍然会返回false
  2. 如果两个字符串具有相同的字符长度,使用equals()方法进行比较时,返回true
//equalsIgnoreCase(); 不区分大小写   public static void example11() {     String str1 = new String("hello java");     String str2 = new String("hello java");     System.out.println(str1 == str2);      //false     System.out.println(str1.equals(str2)); //true       str1 = "hello java";     str2 = "hello java";     System.out.println(str1 == str2);       //true     System.out.println(str1.equals(str2));  //true       str1 = "hello java";     str2 = "hello JAVA";     System.out.println(str1 == str2);         //false     System.out.println(str1.equals(str2));    //false     System.out.println(str1.equalsIgnoreCase(str2));  //true }
  • 按字典顺序比较两个字符串
//compareTo();   public static void example12() {     String a = "a";     String c = "c";     String e = "e";       System.out.println(c.compareTo(a)); //2     System.out.println(c.compareTo(e)); //-2 }
  • 字母大小写转换
//toLowerCase(); //toUppercase();   public static void example13() {     String str = "abcDEFG";     System.out.println(str.toLowerCase());     System.out.println(str.toUpperCase()); }
  • 字符串分割
//split(); 按指定的分割字符或字符串对内容进行分割,并将分割后的结果放在字符串数组中 //str.split(String sign); //str.split(String sign, int limit);   public static void example14() {     String str = "192.168.0.1";       String[] firstArray = str.split("\\.");     String[] secondArray = str.split("\\.", 3);       for(String x : firstArray) {         System.out.print("["+x+"]"); //[192][168][0][1]     }       for(String x : secondArray) {         System.out.print("["+x+"]"); //[192][168][0.1]     } }
  • 格式化字符串
//String类的静态format()方法用于创建格式化的字符串 //str.format(String format, Object...args) //新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。 //str.format(Local l,String format,Object...args) //使用指定的语言环境,制定字符串格式和参数生成格式化的字符串。   String str = String.format("%d", 400 / 2); //将结果以十进制格式显示 String str2 = String.format("%b", 3 > 5);  //将结果以boolean型显示 String str3 = String.format("%x", 200);    //将结果以十六进制格式显示   System.out.println(str); //200 System.out.println(str2); //false System.out.println(str3); //c8   Date date = new Date(); System.out.printf("全部日期和时间信息:%tc%n",date); System.out.printf("年-月-日格式:%tF%n",date); System.out.printf("月/日/年格式:%tD%n",date); System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date); System.out.printf("HH:MM:SS格式(24时制):%tT%n",date); System.out.printf("HH:MM格式(24时制):%tR",date);
  • 使用正则表达式
//通常被用于判断语句中,用来检查某一字符串是否满足某一格式 //matches();   public static void example17() {     String regex = "^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*\\.[a-zA-Z0-9]{2,6}$";     String str1 = "asdfagearg";     String str2 = "aegagewg@sgesg";     String str3 = "segsseggg@qq.com";       System.out.println(str1.matches(regex)); //false     System.out.println(str2.matches(regex)); //false     System.out.println(str3.matches(regex)); //true }
  • 字符串生成器
字符序列String-Builder类,大大提高频繁增加字符串的效率。大量的字符串拼接等操作时使用。
  1. append();  向字符串生成器中追加内容
  2. insert();  向字符串生成器中指定位置插入数据内容
  3. delete();  移除此序列的子字符串中的字符
public static void example18(){     StringBuilder str = new StringBuilder("aaa");       str = str.append("->bbb");     System.out.println(str.toString()); //aaa->bbb       str = str.insert(3, "->ccc");     System.out.println(str.toString()); //aaa->ccc->bbb       str = str.delete(3, 8);     System.out.println(str.toString()); //aaa->bbb }

原文链接:https://www.cnblogs.com/duomen/p/12911882.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:教你如何实现一个基于 Java 的分布式锁服务,建议收藏

下一篇:学习Spring,看这几本书就够了