`

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) ;
    }
分享到:
评论

相关推荐

    C语言头文件大全程序设计语言.pdf

    - &lt;limits.h&gt;:基本数据类型的大小限制。 ### C++标准库(STL) - &lt;algorithm&gt;:通用算法模板。 - &lt;bitset&gt;:表示固定大小集合的模板类。 - &lt;complex&gt;:支持复数算术的模板类。 - &lt;deque&gt;:双端队列容器。 - ...

    freemarker语法简介

    &lt;servlet-name&gt;freemarker&lt;/servlet-name&gt; &lt;servlet-class&gt;freemarker.ext.servlet.FreemarkerServlet&lt;/servlet-class&gt; &lt;!-- 指定模板路径 --&gt; &lt;init-param&gt; &lt;param-name&gt;TemplatePath&lt;/param-name&gt; &lt;param-...

    android数组资源string-array integer-array的用法

    除了这两种基本类型,Android还支持更复杂的数组资源,如`array`,可以包含多种数据类型。但需要注意的是,这种混合类型的数组在实际应用中并不常见,因为它们的可读性和维护性较差。 在实际应用中,数组资源可以...

    Freemarker开发指南

    - **支持类型**: 包括基本数据类型、字符串、数组、集合、Map 等。 #### 5. Freemarker 语法 ##### 5.1 指令 - **指令**: - `&lt;#if&gt;`、`&lt;#else&gt;`、`&lt;#elseif&gt;` 用于条件判断。 - `&lt;#foreach&gt;` 用于循环处理。 -...

    spring data jpa入门实例

    `userRepository.findAll()` 返回的是 `Page&lt;User&gt;` 类型,包含了分页数据和元信息。 总结来说,Spring Data JPA 提供了一种声明式的方式来处理数据访问,降低了与数据库交互的复杂性,提高了开发效率。通过简单的...

    struts上传(已解决中文问题)

    在HTTP协议中,文件上传通常通过表单提交实现,使用`enctype="multipart/form-data"`属性来指定表单数据类型。在Struts框架中,这可以通过Struts的`&lt;s:file&gt;`标签来创建上传文件的输入元素。 当用户选择文件并提交...

    mybatis开发教程.docx

    - 此配置文件指定了环境配置(例如连接池设置)、事务管理器类型等信息,并通过 `&lt;mappers&gt;` 标签引入 SQL 映射文件。 #### 三、基本操作 1. **创建实体类**: - 在 `src/main/java` 目录下创建实体类,例如 `...

    C++ Synax(语法考试手册)

    - `bool int float char long short string`等表示数据类型。 - `'a' 124 -25.0 1.33e5 "hello" true`等表示字面量常量。 4. **运算符**: - `+ - * / %`:算术运算符。 - `&lt;&lt; &gt;&gt;= &lt;= &gt;= == !=`:比较运算符。 ...

    FreeMarker手册

    &lt;li&gt;${being.name} for ${being.price} Euros&lt;/li&gt; &lt;/#list&gt; &lt;u1&gt; &lt;/body&gt; &lt;/html&gt; ``` 在FreeMarker中,**FTL指令**有三种形式: 1. **开始标签**:`&lt;#directivename parameter&gt;` 2. **结束标签**:`&lt;/#...

    Flink 同步数据+mongo<->hive+支持复杂类型

    ### Flink 同步数据+mongo&lt;-&gt;hive+支持复杂类型 #### 一、Flink 简介 Apache Flink 是一个用于处理无界和有界数据流的开源流处理框架。它提供了高吞吐量、低延迟的数据处理能力,并且支持事件时间处理、状态管理等...

    Spring整合MongoDB基于Maven

    public interface MyDocumentRepository extends MongoRepository&lt;MyDocument, String&gt; { } ``` 这里`MyDocument`是你的实体类,代表MongoDB中的集合,`String`是主键类型。然后,Spring会自动创建一个实现类,并...

    FreeMarker语法知识

    例如,如果有一个用户自定义指令,则应该写成`&lt;@myDirective /&gt;`。 - **标签嵌套**:FTL标签应该正确嵌套,不能交叉使用,与XML标签的用法一致。 - **空白字符处理**:FreeMarker会忽略FTL标签之间的空白字符。 - *...

    EL自定义函数引用

    - **方法签名**: 方法应该遵循特定的格式,通常返回类型为`String`、`Integer`等基本类型或包装类,参数列表则根据具体需求而定。 - **异常处理**: 在方法实现中,应当考虑可能出现的各种异常情况,并妥善处理,如...

    spring boot

    &lt;artifactId&gt;spring-boot-starter-web&lt;/artifactId&gt; &lt;/dependency&gt; &lt;!-- Spring Boot Starter Data JPA (可选,如果使用JPA) --&gt; &lt;!-- &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; ...

    Sqoop学习文档(1){Sqoop基本概念、Sqoop的安装配置}.docx

    [--input-null-non-string &lt;string&gt;] \ [--update-key &lt;column-list&gt;] \ [--update-mode &lt;allowinsert|mergekey&gt;] \ [--check-column &lt;column&gt;] \ [--incremental &lt;append|lastmodified&gt;] \ [--last-value &lt;value&gt;] ...

    <<Java 程序设计及应用>> 实验大纲-.doc

    - **变量声明与数据类型**:学习如何声明各种类型的变量,包括基本数据类型(如`int`、`double`、`char`)和复合数据类型(如数组、对象)。 - **流程控制语句**:掌握条件语句(如`if-else`)、循环语句(如`for`...

    tomcat、jboss 连接池配置

    List&lt;Map&lt;String, String&gt;&gt; columns = new ArrayList&lt;&gt;(); ResultSetMetaData meta = rset.getMetaData(); for (int i = 1; i &lt;= meta.getColumnCount(); i++) { String columnName = meta.getColumnName(i); ...

    02-SpringMVC基础及应用

    Map&lt;String, Object&gt; model = new HashMap&lt;&gt;(); model.put("name", "John"); model.put("age", 30); ModelAndView modelAndView = new ModelAndView(); modelAndView.addAllObjects(model); modelAndView....

    SQOOP导入和导出参数.pdf

    - **--null-non-string&lt;null-string&gt;**:如果指定列为非字符串类型,使用指定字符串替换值为null的该类列的值。 ##### 2.2 连接参数 - **--connect&lt;jdbc-uri&gt;**:指定JDBC连接字符串,用于连接关系型数据库。 - **-...

    dwr3初学者使用说明

    - `&lt;allow&gt;`:允许某些操作,这里指允许创建`com.dwr.Select`类型的对象。 - `&lt;create&gt;`:指定可以通过JavaScript创建的对象。 - `&lt;param&gt;`:指定创建对象时的参数,这里指定了创建`com.dwr.Select`对象。 #### 三...

Global site tag (gtag.js) - Google Analytics