java string类方法深入解析

 更新时间:2013年08月27日 10:27:47   作者:  
以下是对java中的string类方法进行了详细的分析介绍。需要的朋友可以过来参考下

复制代码 代码如下:

import java.nio.charset.Charset;
import java.nio.charset.UnsupportedCharsetException;
import java.util.Locale;
import java.util.Date;
import java.util.regex.PatternSyntaxException;

import javax.xml.crypto.Data;

public class Stringxuexi {
  public static void main(String[] argc)
  {
    //charAt(int index) 返回index处的Unicode字符
    String strCom = "JAVA程序设计";
    System.out.println(strCom.charAt(4));

    //codePointAt(int index) 返回index处字符的Unicode编码值
    strCom = "I like JAVA ,too";
    System.out.println(strCom.codePointAt(8));

    //codePointBefore 返回index-1处字符的Unicode编码值
    System.out.println(strCom.codePointBefore(2));

    //codePointCount(int beginIndex,int endIndex)方法    返回指定文本范围内Unicode代码点的数量
    System.out.println(strCom.codePointCount(0, 3));

   
    //compareTo(String str)
    //如果两个字符串不同,那么他们要么在某个索引处的字符不同,要么长度不同,或者同时具备这两种情况
    //如果在一个或多个索引处字符不同,假设k是这类索引的最小值,那么返回值就是这两个字符串在位置k处
    //两个char值之差,如果没有字符不同的索引位置,则返回值是两个字符串长度的差
    System.out.println(strCom.compareTo("I like PHP"));
    System.out.println(strCom.compareTo("I like JAVA too"));

    //compareToIgnoreCase(String str)    忽略大小写比较字符串大小
    System.out.println(strCom.compareToIgnoreCase("I Like PHP"));

    //concat(String str) 将另一字符串连接在此字符串的后面,如果参数字符串的长度为0,
    //则返回此字符串,否则创建一个新的String对象
    System.out.println(strCom.equals(strCom.concat("")));
    System.out.println(strCom.concat(strCom));

    //contains(CharSequence s)判断字符串是否包含指定的char值序列
    System.out.println(strCom.contains("JAVA"));

    //valueOf(char []data) 静态方法,返回包含字符数组的字符的字符串
    char [] array={'山','东'};
    System.out.println(String.valueOf(array));

    //valueOf(char[] data,int offset,int count)返回包含字符数组从offset处开始的count个字符
    //组成的字符串
    System.out.println(String.valueOf(array, 0, 1));

    //endwith(String suffix)测试字符串是否是指定的后缀结束
    System.out.println(strCom.endsWith("JAVA"));

    //equals(object obj)    如果给定的对象表示的String与此String相等,则返回true,否则false
    System.out.println(strCom.equals("I like JAVA"));

    //equalsIgnoreCase(String anotherString) //忽略大小写与另一字符串进行比较,注意与equals方法的参数类型不同
    System.out.println(strCom.equalsIgnoreCase("I Like JAva"));

    //format(String format,Object ...args)静态方法    使用指定的格式字符串和参数返回一个格式话字符串
    //%d 格式化为十进制整数
    //%o 格式化为八进制整数
    //%x %X 格式化为十六进制整数

    System.out.println(String.format("%e %x %o %d %a %% %n", 15.000,15,15,15,15.0));

   
    //format(Locale l,String format,Object ... args)
    //通过给定的特殊转换符作为参数来实现对日期和时间字符串的格式化
    //%te 一个月中的某一天
    //%tb 指定语言环境的月份简称
    //%tB 指定语言环境的月份全称
    //%tA 指定语言环境的星期几全称
    //%ta 指定语言环境的星期几简称
    //%tc 包括全部日期和时间信息
    //%tY 4位年份
    //%ty 二位年份
    //%tm 月份
    //%tj 一年中的第几天
    //%td 一个月中的第几天
    Date date = new Date();
    Locale form = Locale.CHINA;
    String year = String.format(form, "%tY", date);
    String month    = String.format(form, "%tm", date);
    String day = String.format(form, "%td", date);
    System.out.println("今天是: "+ year + "年"+month+"月"+day+"日");
    System.out.println(String.format(form, "%tc", date));

    //byte[] getBytes() 得到字符串的byte序列   
    byte[] str = strCom.getBytes();
    for (int i = 0;i < str.length;i++)
      System.out.print(str[i]+" ");

    //getBytes(Charset charset)
    //getBytes(String string)
    //得到编码字符集的所得字符序列
    try {
      str = strCom.getBytes(Charset.defaultCharset());
      for (int i = 0; i < str.length; i++)
        System.out.println(str[i] + " ");
    } catch (UnsupportedCharsetException e) {
      // TODO: handle exception
      e.printStackTrace();
    }

    //getchars(int srcBegin,int srcEnd,char[] dst,int dstBegin)
    //将字符从此字符串复制到目标字符数组
    char[] dst = new char[10];
    strCom.getChars(0, 10, dst, 0);
    for (int i = 0; i < dst.length;i++)
      System.out.print(dst[i]);
    System.out.println();

    //hashCode()    返回字符串的哈希码,String对象的哈希码的计算公式是
    //s[0]*31^(n-1)+s[1]*31^(n-2)+...+s[n-1]
    //空串的哈希码为0
    System.out.println(strCom.hashCode());

    //indexOf(int ch) 获取字符的第一个索引,ch是一个字符,如果没有,返回-1
    System.out.println(strCom.indexOf('A'));

    //indexOf(int ch,int fromIndex)    //返回从从指定的索引处开始的指定字符的索引
    //fromIndex没有限制,如果为负,与0等效,如果大于等于字符串长度,则返回-1
    System.out.println(strCom.indexOf('A', 9));

    //indexOf(String str)
    //indexOf(String str,int fromIndex)
    //返回指定字符串在此字符串第一次出现处的索引
    System.out.println(strCom.indexOf("JAVA"));

    //intern()    返回字符串对象的规范化表示形式
    //当调用intern方法时,如果池已经包含一个等于此String对象的字符串,则返回池中的字符串
    //否则将此字符串对象添加到池中,并返回此String对象引用
    //了解这个处理机制也可以让我们在用到字符串常量的时候了解如何节省这些字符串所占用的内存。
    String strCom2 = new String("I like JAVA");
    System.out.println(strCom == strCom2);
    System.out.println(strCom.endsWith(strCom2));
    System.out.println(strCom.compareTo(strCom2));
    System.out.println(strCom.intern() == strCom2.intern());
    String s1 = new String("你好,Java自由人");
    String s2 = new String("你好,") + "Java自由人";
    System.out.println(s1==s2);
    System.out.println(s1.intern()==s2.intern());

    //同indexOf,注意fromIndex 参数,是指从fromIndex处反向搜索
    System.out.println(strCom.lastIndexOf('A'));
    System.out.println(strCom.lastIndexOf('A',10));
    System.out.println(strCom.lastIndexOf("JAVA"));
    System.out.println(strCom.lastIndexOf("JAVA", 10));

    //返回字符串长度
    System.out.println(strCom.length());

    //matchs(String regex)匹配正则表达式
    try {
      String regex = "1234";
      System.out.println(regex.matches("//d{4}"));
      System.out.println(regex.replaceAll("//d{4}", "chen"));
      System.out.println(regex.replaceFirst("//d{4}", "chen"));
    } catch (PatternSyntaxException e) {
      // TODO: handle exception
      e.printStackTrace();
    }

    // offsetByCodePoints(int index,int codePointOffset)
    //返回从给定的index处偏移codePointOffset个代码点的索引
    System.out.println(strCom.offsetByCodePoints(7, 4));

    //测试两个字符串区域是否相等,第一个参数为true时表示忽略大小写
    System.out.println(strCom.regionMatches(true, 0, "I lIke", 0, 3));
    System.out.println(strCom.regionMatches(0, "I like", 0, 3));

    System.out.println(strCom.replace('A', 'a'));
    System.out.println(strCom.replace("JAVA", "PHP"));

    //String[] split(String regex,int limit)
    //按指定的分隔符会字符串内容分割并存放到字符串数组中,limit为控制模式应用次数
    String[] info = strCom.split(" ,");
    for (int i = 0; i < info.length;i++)
      System.out.println(info[i]);

    info    = strCom.split(" ", 2);
    for (int i = 0; i < info.length;i++)
      System.out.println(info[i]);

    //startsWith(String prefix,int toffset)//判断是否以指定前缀开始
    //toffset为负或大于字符串长度结果为false
    System.out.println(strCom.startsWith("I"));
    System.out.println(strCom.startsWith("I",-1));

    //CharSequeuece subSequeuece(int beginIndex,int endIndex)
    //返回一个新的字符序列
    System.out.println(strCom.subSequence(2, 6));

    //String substring(int beginindex,int endIndex)
    //返回子字符串
    System.out.println(strCom.substring(2));
    System.out.println(strCom.substring(2, 6));

    //toCharArray() 字符串变字符数组
    char[] str1 = strCom.toCharArray();
    for (int i = 0; i < str1.length;i++)
      System.out.print(str1[i]+" ");
    System.out.println();

    //toLowerCase(Locale locale) 将字符串中的所有字符变成大/小写返回新的字符串
    System.out.println(strCom.toLowerCase());
    System.out.println(strCom.toUpperCase());
    System.out.println(strCom.toUpperCase(form));
    System.out.println(strCom.toLowerCase(form));

    //trim()方法取出字符串的前后空白
    System.out.println(("    "+strCom).trim());

    //valueOf()     静态方法 实现基本数据类型转成字符串
    System.out.println(String.valueOf(true));
    System.out.println(String.valueOf('A'));
    System.out.println(String.valueOf(12.0));
  }
}

相关文章

  • Java String类字符串的理解与认知

    Java String类字符串的理解与认知

    String字符串和char字符不同,char使用单引号,只能表示一个字符,字符串就是一段文本。String是个类。这个类使用final修饰,所以这个类是不可以继承扩充和修改它的方法的
    2021-10-10
  • springboot搭建访客管理系统的实现示例

    springboot搭建访客管理系统的实现示例

    这篇文章主要介绍了springboot搭建访客管理系统的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Java实现银行存取款

    Java实现银行存取款

    这篇文章主要为大家详细介绍了Java实现银行存取款,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • Java使用Filter实现登录验证

    Java使用Filter实现登录验证

    本文主要介绍了Java使用Filter实现登录验证,Filter类似于门卫,你在进入之前门卫需要盘查你,身份合法进入,身份不合法拦截,感兴趣的可以了解一下
    2023-11-11
  • Java OpenCV图像处理之SIFT角点检测详解

    Java OpenCV图像处理之SIFT角点检测详解

    SIFT,即尺度不变特征变换,是用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。本文将详细介绍一下Java OpenCV图像处理中的SIFT角点检测,需要的可以参考一下
    2022-02-02
  • 在Mybatis使用Integer与''进行比较的坑及解决

    在Mybatis使用Integer与''进行比较的坑及解决

    这篇文章主要介绍了在Mybatis使用Integer与''进行比较的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Java C++ leetcode执行一次字符串交换能否使两个字符串相等

    Java C++ leetcode执行一次字符串交换能否使两个字符串相等

    这篇文章主要为大家介绍了Java C++ leetcode1790执行一次字符串交换能否使两个字符串相等,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • SpringBoot 整合数据源的具体实践

    SpringBoot 整合数据源的具体实践

    本文主要介绍了SpringBoot 整合数据源的具体实践,利用 Spring Boot 的自动配置和简化的注解来简化数据源配置工作,从而更专注于应用程序的业务逻辑开发,感兴趣的可以了解一下
    2023-11-11
  • 详解微信开发之Author网页授权

    详解微信开发之Author网页授权

    微信开发中,经常有这样的需求:获得用户头像、绑定微信号给用户发信息,那么实现这些的前提就是授权!本文对此进行系统介绍,需要的朋友一起来看下吧
    2016-12-12
  • Spring boot 配置多个redis的方法示例

    Spring boot 配置多个redis的方法示例

    这篇文章主要介绍了Spring boot 配置多个redis的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09

最新评论