String 应用

xiaoxiao2021-02-27  232

package myAllTest.TString; import java.io.UnsupportedEncodingException; import java.util.Arrays; import java.util.Date; import java.util.Locale; public class TString {    public static void main(String[] args) {   // TODO Auto-generated method stub   TString ts=new TString();   ts.Ts_Charset();   ts.Ts_charAt();   ts.Ts_compareTo();   ts.Ts_concat();   ts.Ts_contains_endsWith_equalsIgnoreCase();   ts.Ts_format();   ts.Ts_indexOf_lastIndexOf_lastIndexOf();   ts.Ts_split_startsWith();  }    /**   * String类是我们最常使用的一个字符串类   * 此类包括方法检测单个字符的序列,用于比较字符串、 搜索字符串、 提取子字符串,   * 并使用的所有字符创建字符串的副本转换为大写或小写。大小写映射基于指定的字符类的 Unicode 标准版本。String   为字符串串联运算符 (+),和其他对象到字符串的转换,Java 语言提供特别支持。通过执行字符串串联 (或) 类和它的方法。   字符串转换是通过方法执行,由定义,由 Java 中的所有类继承。字符串串联和转换的更多信息,   *   *   * 在这里我总结了几个比较常用,也是初学者比较不熟悉的几个方法,提出来做个示例,帮助大家更好的理解   *   * 在下面的举例中,我会用不同的字符串创建方式来创建   */    /*   * 用String的一个通过指定编码方式来解码入参的Byte[]   */  public void Ts_Charset()  {   //Unicode、ASCII、GBK、GB2312、UTF-8   这是我们常见的编码格式当然还有很多,这里就列举了这些   //在这里我列举了中文和英文,我们来比较一下是否进行了编码处理   String str0="abcd";   String str="你好";   String str2=null;   try {     str2=new String(str.getBytes(),"ASCII");   } catch (UnsupportedEncodingException e) {    // TODO Auto-generated catch block    e.printStackTrace();   }   System.out.println(str2);   /*    * 当我们处理的时候,可见英文当然都是支持的,所以正常输出adbc,而我们的中文则出现的是四个问号    */  }    /*   * charAt 返回指定索引处的 char 值。   * codePointAt 返回指定索引处的字符(Unicode 代码点)。   */  public void Ts_charAt()  {   String str=new String("abcd");   char str1=str.charAt(2);//注意此处返回的是一个字符,而不是一个字符串,我以前写的时候,总是搞错用String来接收   int i=str.codePointAt(2);   System.out.println(str1);   System.out.println(i);   /*    * 结果:c    *    99    */  }    /*   * compareTo  按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。   *   */    public void Ts_compareTo()  {   byte[] byt=new byte[]{'a','b','c','d'};   String str=new String(byt);      byte[] byt1=new byte[]{'a','c','b','d'};   String str1=new String(byt1);      byte[] byt2=new byte[]{'a','d','b','c'};   String str2=new String(byt1);      int result=str.compareTo(str1);//结果:str<str1   int result2=str1.compareTo(str2);//结果:str=str1   System.out.println(result);   System.out.println(result2);  }    /*   * concat 将指定字符串连接到此字符串的结尾。这个应用的地方还是很多的,比较重要   *   */    public void Ts_concat()  {   StringBuffer sb=new StringBuffer("abcd");   String str=new String(sb);      StringBuffer sb1=new StringBuffer("efgh");   String str1=new String(sb1);      String str3=str.concat(str1);   System.out.println(str3);   /*    * 结果:abcdefgh    */  }    /**   * contains 当且仅当此字符串包含指定的 char 值序列时,返回 true。   * endsWith 测试此字符串是否以指定的后缀结束。   * equalsIgnoreCase 将此 String 与另一个 String 比较,不考虑大小写。   */  public void Ts_contains_endsWith_equalsIgnoreCase()  {   StringBuilder sb=new StringBuilder("abcd");   String str=new String(sb);      String str2=new String("ABCD");      boolean br=str.contains("a");   boolean br2=str.endsWith("d");   boolean br3=str.equalsIgnoreCase(str2);   System.out.println(br);   System.out.println(br2);   System.out.println(br3);   /*    * 结果:true true true    */  }    /*   * format  使用指定的语言环境、格式字符串和参数返回一个格式化字符串。   * 这个功能比较有趣,我觉得这个和C语言在输出字符串时都会用%S,%d来表示字符串和数字的输出等,这里也一样,有着相似之处   * 我相信,学过C语言的在这里就会很快掌握并理解,下面我列举了几个常用的   * %s 字符串类型   * %c 字符类型   * %b 布尔类型   * %d 整数类型   * %x 十六进制类型   * %% 百分比   * %e 指数类型   * %a 十六进制浮点类型  还有一些,我就不列举了,我有时也会翻翻文档,多了,   * 时间长了也可能会忘记不住,这是很正常的事,不过常用的这些我们还是一点盐牢记   */    public void Ts_format()  {   String str=new String("world");   String str2=String.format("hello!%s", str);//注意这是一个静态方法哦   //这个方法还有一个本地化,一般我们使用日期的时候经常用到      String str3=String.format("%1$tY/%1$tm/%1$te",new Date());   String str4=String.format("%tF",new Date());   String str5=String.format("%tT  AND  %tR",new Date(),new Date());      System.out.println(str2);//结果:hello!world   System.out.println(str3);//2017/07/9   System.out.println(str4);//2017-07-09   System.out.println(str5);//22:23:38  AND  22:23    }    /*   * indexOf  返回指定字符在此字符串中第一次出现处的索引。   * lastIndexOf  返回指定字符在此字符串中最后一次出现处的索引。   * matches 告知此字符串是否匹配给定的正则表达式。   */  public void Ts_indexOf_lastIndexOf_lastIndexOf()  {   String str=new String("world OMG!");   int index1=str.indexOf('w');//注意此处'w'字符,实际上是一个int unicode码值   int index2=str.lastIndexOf('O');   System.out.println(index1);//结果:0   System.out.println(index2);//结果:6   String match="^w.*\\s[A-Z]*!$";   boolean result=str.matches(match);   System.out.println(result);//结果:true     }    /*   * split  根据给定正则表达式的匹配拆分此字符串。   * startsWith 测试此字符串是否以指定的前缀开始。   */  public void Ts_split_startsWith()  {   String str=new String("wo:rld:OM:G!:haha");   String[] str1=str.split(":",2);//方便记忆,这个3参数,实际上是将这个字符串分割成几份   boolean bol=str.startsWith("w");   System.out.println(Arrays.toString(str1));//[wo, rld:OM:G!:haha]   System.out.println(bol);//true     } }
转载请注明原文地址: https://www.6miu.com/read-8917.html

最新回复(0)