当前位置:  编程技术>java/j2ee

java string类方法深入解析

    来源: 互联网  发布时间:2014-10-27

    本文导语:  代码如下: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)  {  ...

代码如下:

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 公式解析 表达式解析 expression-analyzer
  • 请问各位:我用SUN公司的JAXP开发包解析XML文档,可不知道对XML解析后如何将结果写回文件中。请各位熟悉Java和XML的高手帮忙。
  • java解析xml之jdom解析xml示例分享
  • Java 的解析器代码生成器 AustenX
  • Java的HTML解析器 Jerry
  • java解析xml之dom4j解析xml示例分享
  • java解析xml之dom解析xml示例分享
  • Java的CSV解析包 CSVBeans
  • Java的CSV解析包 CSVObjects
  • 求教JAVA中XML解析问题
  • Java表达式解析器 JExel
  • Java代码解析工具 JavaFE
  • Java表达式语法解析库 parboiled
  • Java的HTML解析包 jScraper
  • Java的 RSS/Atom的解析器 FeedParser
  • Java的HL7解析器 HAPI
  • java解析xml用什么包?
  • 有什么java包可以支持解析html的。
  • Java结构化数据解析包 Lycia
  • Java的HTML解析库 gohtml
  • 想深入学习Java应该学习哪些东西
  • 深入理解Java对象实例生成的例子
  • java父类和子类初始化顺序的深入理解
  • 深入分析Java内存区域的使用详解
  • 基于Java Tomcat和激活MyEclips的深入理解
  • java/word+fusionchart生成图表深入分析
  • 深入理解:Java是类型安全的语言,而C++是非类型安全的语言
  • Java接口和抽象类的区别深入剖析
  • 深入JAVA对象深度克隆的详解
  • 深入Java不可变类型的详解
  • 深入java对象复制的分析
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.lang类runtime的类成员方法: runfinalization定义及介绍
  • Java中如何通过方法名动态调用方法?
  • java命名空间java.awt.im类inputcontext的类成员方法: getinputmethodcontrolobject定义及介绍
  • <%@ page import="java.lang.Math"%>后用round(float a)方法,怎么报找不到round方法?
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • java初学--在java中有个native本地方法 说是能嵌入c 不知道具体?
  • java命名空间java.lang类system的类成员方法: runfinalization定义及介绍
  • 在JAVA中只有一种派生子类的方法吗?我记得在C++ 中有3种派生方法的!
  • java命名空间java.lang类stacktraceelement的类成员方法: isnativemethod定义及介绍
  • java根据方法名称取得反射方法的参数类型示例
  • java命名空间java.lang类stacktraceelement的类成员方法: getmethodname定义及介绍
  • 请问java.sql包中 preparedStatement 对象的setString(int parameterIndex,java.lang.String x)方法怎么用?
  • java命名空间java.awt.im.spi接口inputmethod的类成员方法: dispose定义及介绍
  • java.util类对象的DATE方法为何不能用? <%=new java.util.date()%>,在页面中是这样写的,服务器用的是Resin.
  • java命名空间java.net类httpurlconnection的类成员方法: getrequestmethod定义及介绍
  • 有没有一种工具可以让java自动调出类的方法、成员?就像Delphi一样,写完Edit1.系统会跳出一些TEdit的属性、方法。
  • java命名空间java.security类policyspi的类成员方法: enginerefresh定义及介绍
  • 各位高手知道在JAVA中如何用一个名称创建一个对象实例,并调用其方法,注意:在编写代码时并不知要创建的对象的类名,也并不知方法名
  • java命名空间java.awt.im.spi接口inputmethod的类成员方法: getcontrolobject定义及介绍
  • java 与 C++ 实现后绑定的方法
  • java命名空间java.security类policy的类成员方法: refresh定义及介绍
  • 谁能告诉我哪里能找到java包内部类及方法使用介绍
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3