`

17、String <--->基本数据类型

    博客分类:
  • java
 
阅读更多
基本类型 <--> String转换
  int a = (int)string s; 这种强制装换为什么要报错:因为int 和String 类型在内存中不存在交集,如int和float数据类型存在内存格式相同的部分,所以能进行自然转换和强制转换。
1、int <---> String
int -- >String
int i=12345;
String s="";
第一种方法:s=i+"";
第二种方法:s=String.valueOf(i);//建议使用第二种
String --->int
s="12345";
int i;
第一种方法:i=Integer.parseInt(s); //使用第一种
第二种方法:i=Integer.valueOf(s).intValue();

2、byte[] <--->String
byte[] b ={104, 101, 108, 108, 111};
String s = new String(b);
String ss= "hello";
byte [] bb = ss.getBytes();








String : 字符串类型

一、构造函数
     String(byte[ ] bytes):通过byte数组构造字符串对象。
     String(char[ ] value):通过char数组构造字符串对象。
     String(Sting original):构造一个original的副本。即:拷贝一个original。
     String(StringBuffer buffer):通过StringBuffer数组构造字符串对象。 
例如:
      byte[] b = {'a','b','c','d','e','f','g','h','i','j'};
      char[] c = {'0','1','2','3','4','5','6','7','8','9'};
      String sb = new String(b);                 //abcdefghij
      String sb_sub = new String(b,3,2);     //de
      String sc = new String(c);                  //0123456789
      String sc_sub = new String(c,3,2);    //34
      String sb_copy = new String(sb);       //abcdefghij 
      System.out.println("sb:"+sb);
      System.out.println("sb_sub:"+sb_sub);
      System.out.println("sc:"+sc);
      System.out.println("sc_sub:"+sc_sub);
      System.out.println("sb_copy:"+sb_copy);
      输出结果:sb:abcdefghij
                      sb_sub:de
                       sc:0123456789
                        sc_sub:34
                        sb_copy:abcdefghij

二、方法:

     说明:①、所有方法均为public。
           ②、书写格式: [修饰符] <返回类型><方法名([参数列表])>

      例如:static int parseInt(String s)
      表示此方法(parseInt)为类方法(static),返回类型为(int),方法所需要为String类型。

1. char charAt(int index) :取字符串中的某一个字符,其中的参数index指的是字符串中序数。字符串的序数从0开始到length()-1 。
    例如:String s = new String("abcdefghijklmnopqrstuvwxyz");
          System.out.println("s.charAt(5): " + s.charAt(5) );
          结果为: s.charAt(5): f
2. int compareTo(String anotherString) :当前String对象与anotherString比较。相等关系返回0;不相等时,从两个字符串第0个字符开始比较,返回第一个不相等的字符差,另一种情况,较长字符串的前面部分恰巧是较短的字符串,返回它们的长度差。
3. int compareTo(Object o) :如果o是String对象,和2的功能一样;否则抛出ClassCastException异常。
    例如:String s1 = new String("abcdefghijklmn");
            String s2 = new String("abcdefghij");
           String s3 = new String("abcdefghijalmn");
           System.out.println("s1.compareTo(s2): " + s1.compareTo(s2) ); //返回长度差
           System.out.println("s1.compareTo(s3): " + s1.compareTo(s3) ); //返回'k'-'a'的差
           结果为:s1.compareTo(s2): 4
                       s1.compareTo(s3): 10
4. String concat(String str) :将该String对象与str连接在一起。
5. boolean contentEquals(StringBuffer sb) :将该String对象与StringBuffer对象sb进行比较。
6. static String copyValueOf(char[] data) :
7. static String copyValueOf(char[] data, int offset, int count) :这两个方法将char数组转换成String,与其中一个构造函数类似。
8. boolean endsWith(String suffix) :该String对象是否以suffix结尾。
    例如:String s1 = new String("abcdefghij");
           String s2 = new String("ghij");
           System.out.println("s1.endsWith(s2): " + s1.endsWith(s2) );
           结果为:s1.endsWith(s2): true
9. boolean equals(Object anObject) :当anObject不为空并且与当前String对象一样,返回true;否则,返回false。
10. byte[] getBytes() :将该String对象转换成byte数组。
11. void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) :该方法将字符串拷贝到字符数组中。其中,srcBegin为拷贝的起始位置、srcEnd为拷贝的结束位置、字符串数值dst为目标字符数组、dstBegin为目标字符数组的拷贝起始位置。
     例如:char[] s1 = {'I',' ','l','o','v','e',' ','h','e','r','!'};//s1=I love her!
           String s2 = new String("you!"); s2.getChars(0,3,s1,7); //s1=I love you!
           System.out.println( s1 );
           结果为:I love you!
12. int hashCode() :返回当前字符的哈希表码。
13. int indexOf(int ch) :只找第一个匹配字符位置。
14. int indexOf(int ch, int fromIndex) :从fromIndex开始找第一个匹配字符位置。
15. int indexOf(String str) :只找第一个匹配字符串位置。
16. int indexOf(String str, int fromIndex) :从fromIndex开始找第一个匹配字符串位置。
      例如:String s = new String("write once, run anywhere!");
              String ss = new String("run");
              System.out.println("s.indexOf('r'): " + s.indexOf('r') );
              System.out.println("s.indexOf('r',2): " + s.indexOf('r',2) );
              System.out.println("s.indexOf(ss): " + s.indexOf(ss) );
              结果为:s.indexOf('r'): 1
                      s.indexOf('r',2): 12
                      s.indexOf(ss): 12
17. int lastIndexOf(int ch)
18. int lastIndexOf(int ch, int fromIndex)
19. int lastIndexOf(String str)
20. int lastIndexOf(String str, int fromIndex) 以上四个方法与13、14、15、16类似,不同的是:找最后一个匹配的内容。
public class CompareToDemo {
      public static void main (String[] args) {
           String s1 = new String("acbdebfg");
     
           System.out.println(s1.lastIndexOf((int)'b',7));
     }
}
运行结果:5
       (其中fromIndex的参数为 7,是从字符串acbdebfg的最后一个字符g开始往前数的位数。既是从字符c开始匹配,寻找最后一个匹配b的位置。所以结果为 5)


21. int length() :返回当前字符串长度。
22. String replace(char oldChar, char newChar) :将字符号串中第一个oldChar替换成newChar。
23. boolean startsWith(String prefix) :该String对象是否以prefix开始。
24. boolean startsWith(String prefix, int toffset) :该String对象从toffset位置算起,是否以prefix开始。
     例如:String s = new String("write once, run anywhere!");
             String ss = new String("write");
             String sss = new String("once");
             System.out.println("s.startsWith(ss): " + s.startsWith(ss) );
             System.out.println("s.startsWith(sss,6): " + s.startsWith(sss,6) );
             结果为:s.startsWith(ss): true
                     s.startsWith(sss,6): true
25. String substring(int beginIndex) :取从beginIndex位置开始到结束的子字符串。
26.String substring(int beginIndex, int endIndex) :取从beginIndex位置开始到endIndex位置的子字符串。
27. char[ ] toCharArray() :将该String对象转换成char数组。
28. String toLowerCase() :将字符串转换成小写。
29. String toUpperCase() :将字符串转换成大写。
     例如:String s = new String("java.lang.Class String");
             System.out.println("s.toUpperCase(): " + s.toUpperCase() );
             System.out.println("s.toLowerCase(): " + s.toLowerCase() );
             结果为:s.toUpperCase(): JAVA.LANG.CLASS STRING
                  s.toLowerCase(): java.lang.class string
30. static String valueOf(boolean b)
31. static String valueOf(char c)
32. static String valueOf(char[] data)
33. static String valueOf(char[] data, int offset, int count)
34. static String valueOf(double d)
35. static String valueOf(float f)
36. static String valueOf(int i)
37. static String valueOf(long l)
38. static String valueOf(Object obj)
     以上方法用于将各种不同类型转换成Java字符型。这些都是类方法。





Java中String类的常用方法:

public char charAt(int index)
返回字符串中第index个字符;
public int length()
返回字符串的长度;
public int indexOf(String str)
返回字符串中第一次出现str的位置;
public int indexOf(String str,int fromIndex)
返回字符串从fromIndex开始第一次出现str的位置;
public boolean equalsIgnoreCase(String another)
比较字符串与another是否一样(忽略大小写);
public String replace(char oldchar,char newChar)
在字符串中用newChar字符替换oldChar字符
public boolean startsWith(String prefix)
判断字符串是否以prefix字符串开头;
public boolean endsWith(String suffix)
判断一个字符串是否以suffix字符串结尾;
public String toUpperCase()
返回一个字符串为该字符串的大写形式;
public String toLowerCase()
返回一个字符串为该字符串的小写形式
public String substring(int beginIndex)
返回该字符串从beginIndex开始到结尾的子字符串;
public String substring(int beginIndex,int endIndex)
返回该字符串从beginIndex开始到endsIndex结尾的子字符串
public String trim()
返回该字符串去掉开头和结尾空格后的字符串
public String[] split(String regex)
将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组
实例: 
public class SplitDemo{
     public static void main (String[] args) {

             String date = "2008/09/10";
            String[ ] dateAfterSplit= new String[3];
            dateAfterSplit=date.split("/");         //以“/”作为分隔符来分割date字符串,并把结果放入3个字符串中。

            for(int i=0;i<dateAfterSplit.length;i++)
                       System.out.print(dateAfterSplit[i]+" ");
      }
}

运行结果:2008 09 10          //结果为分割后的3个字符串

实例:
TestString1.java:
程序代码
public class TestString1
{
    public static void main(String args[]) {
        String s1 = "Hello World" ;
        String s2 = "hello world" ;
        System.out.println(s1.charAt(1)) ;
        System.out.println(s2.length()) ;
        System.out.println(s1.indexOf("World")) ;
        System.out.println(s2.indexOf("World")) ;
        System.out.println(s1.equals(s2)) ;
        System.out.println(s1.equalsIgnoreCase(s2)) ;

        String s = "我是J2EE程序员" ;
        String sr = s.replace('我','你') ;
        System.out.println(sr) ;
    }
}

TestString2.java:
程序代码

public class TestString2
{
    public static void main(String args[]) {
        String s = "Welcome to Java World!" ;
        String s2 = "   magci   " ;
        System.out.println(s.startsWith("Welcome")) ;
        System.out.println(s.endsWith("World")) ;
        String sL = s.toLowerCase() ;
        String sU = s.toUpperCase() ;
        System.out.println(sL) ;
        System.out.println(sU) ;
        String subS = s.substring(11) ;
        System.out.println(subS) ;
        String s1NoSp = s2.trim() ;
        System.out.println(s1NoSp) ;
    }
分享到:
评论

相关推荐

    spring security 参考手册中文版

    41.1.17 &lt;anonymous&gt; 295 &lt;anonymous&gt;的父元素 295 &lt;anonymous&gt;属性 295 41.1.18 &lt;csrf&gt; 295 父元素&lt;csrf&gt; 296 &lt;csrf&gt;属性 296 41.1.19 &lt;custom-filter&gt; 296 &lt;custom-filter&gt;的父元素 296 &lt;custom-filter&gt;属性 296 ...

    Advanced Bash-Scripting Guide <>

    Checking a remote server for identd&lt;rojy bug&gt; 13-6. pidof 帮助杀掉一个进程 13-7. 检查一个CD 镜像 13-8. 在一个文件中创建文件系统 13-9. 添加一个新的硬盘驱动器 13-10. 使用umask 来将输出文件隐藏起来 13-...

    nosql数据库mongodb2.7.6.jar

    它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。基本类型,例如,string,int,float,...

    freemarker总结

    其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,使用gt等字母运算符代替&gt;会有更好的效果,因为 FreeMarker会把&gt;解释成FTL标签的结束字符,当然,也可以使用括号来避免这种情况,如:&lt;#if (x&gt;y)&gt; ...

    C/C++面试题目及解答.doc

    但是,对于基本数据类型来说,尽管可以用 memcpy 进行拷贝,由于有赋值运算符可以方便且高效地进行同种或兼容类型的数据之间的拷贝,所以这种情况下 memcpy 几乎不被使用。memcpy 的长处是用来实现(通常是内部实现...

    xml入门教程/xml入门教程

    ELEMENT 定义元素中可用的数据类型 #PCDATA 可解析字符串。 1)DTD的调用 方式一:调用内部文档类型定义。 &lt;?xml version="1.0" standalone="yes"?&gt; &lt;!DOCTYPE studinfo[&lt;!ELEMENT studinfo (#PCDATA)&gt;]&gt; ...

    轻量级java web MVC框架

    Map&lt;String, String&gt; m = new HashMap&lt;String, String&gt;(); m.put("beij", "北京"); m.put("sha", "上海"); m.put("nanj", "南京"); mv.setAttribute("city", m); return mv; } @MappingMethodAnnotation...

    01 基础.html

    数据类型:基本类型:数字number、字符串:string、布尔:boolean、null、undefined 引用类型:数组:array、对象:object、函数:function 检测数据类型:typeof-基本类型 区别: 内存:堆-》基本类型-&gt;...

    ibatis 开发指南(pdf)

    mysql://localhost/sample"/&gt; &lt;br&gt;&lt;property name="JDBC.Username" ="user"/&gt; &lt;br&gt;&lt;property name="JDBC.Password" ="mypass"/&gt; &lt;br&gt;&lt;property name=&lt;br&gt;value="10"/&gt; &lt;br&gt;&lt;property name=value="5"/&gt; &lt;br&gt;&lt;property...

    数据结构(C++)有关练习题

    17&lt;br&gt;习题7 图---------------------------------------------------------------------------------------24&lt;br&gt;习题8 查找-----------------------------------------------------------------------------------...

    JSTL详细标签库介绍

    发生异常时,异常周围信息(抛出对象本身类型)-------------异常处理程序&lt;BR&gt;&lt;BR&gt;12.5一个异常处理的简单实例:除数为0&lt;BR&gt;&lt;BR&gt;需求:使用一个小应用程序,完成两数相除的计算&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;...

    Java学习题答案

    String是基本数据类型吗?&lt;br&gt;12. Anonymous Inner Class (匿名内部类) 可以extends(继承)其它类&lt;br&gt;13 final类是为防止他人从你的类上派生新类,此类是不可继承的。&lt;br&gt;14 super()和this()方法只能在构造函数里调用...

    asp.net技术内幕(1)

    &lt;br&gt;3.4.2 比较一个控件的值与固定值 &lt;br&gt;3.4.3 执行数据类型检查 &lt;br&gt;3.5 检查值的范围:RangeValidator控件 &lt;br&gt;3.6 错误汇总:ValidationSummary控件 &lt;br&gt;3.7 执行自定义的检验:CustomValidator控件 &lt;br&gt;3.8 ...

    asp.net技术内幕(2)

    &lt;br&gt;3.4.2 比较一个控件的值与固定值 &lt;br&gt;3.4.3 执行数据类型检查 &lt;br&gt;3.5 检查值的范围:RangeValidator控件 &lt;br&gt;3.6 错误汇总:ValidationSummary控件 &lt;br&gt;3.7 执行自定义的检验:CustomValidator控件 &lt;br&gt;3.8 ...

    asp.net技术内幕(5)

    &lt;br&gt;3.4.2 比较一个控件的值与固定值 &lt;br&gt;3.4.3 执行数据类型检查 &lt;br&gt;3.5 检查值的范围:RangeValidator控件 &lt;br&gt;3.6 错误汇总:ValidationSummary控件 &lt;br&gt;3.7 执行自定义的检验:CustomValidator控件 &lt;br&gt;3.8 ...

    asp.net技术内幕(4)

    &lt;br&gt;3.4.2 比较一个控件的值与固定值 &lt;br&gt;3.4.3 执行数据类型检查 &lt;br&gt;3.5 检查值的范围:RangeValidator控件 &lt;br&gt;3.6 错误汇总:ValidationSummary控件 &lt;br&gt;3.7 执行自定义的检验:CustomValidator控件 &lt;br&gt;3.8 ...

    asp.net技术内幕(3)

    &lt;br&gt;3.4.2 比较一个控件的值与固定值 &lt;br&gt;3.4.3 执行数据类型检查 &lt;br&gt;3.5 检查值的范围:RangeValidator控件 &lt;br&gt;3.6 错误汇总:ValidationSummary控件 &lt;br&gt;3.7 执行自定义的检验:CustomValidator控件 &lt;br&gt;3.8 ...

    ASP.net技术内幕

    &lt;br/&gt;3.3.6 检验邮政编码 &lt;br/&gt;3.4 比较值:CompareValidator控件 &lt;br/&gt;3.4.1 比较一个控件与另一个控件的值 &lt;br/&gt;3.4.2 比较一个控件的值与固定值 &lt;br/&gt;3.4.3 执行数据类型检查 &lt;br/&gt;3.5 检查值的范围:...

    java中基本类型及string类型

    java中基本类型及string类型 跟大家分享下

    程序设计基础答案

    &lt;br&gt;17.下列方法定义中,正确的是( )。&lt;br&gt;A) int x( int a,b ) B) double x( int a,int b)&lt;br&gt;{ return (a-b); } { int w; w=a-b; }&lt;br&gt;C) double x( a,b ) D) int x( int a,int b)&lt;br&gt;{ return b; } { return a-b;...

Global site tag (gtag.js) - Google Analytics