String 应用

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
  
 }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值