技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Java --> [Java基础教程]第八章-Java字符串

[Java基础教程]第八章-Java字符串

浏览:1367次  出处信息

Java的字符串类(java.lang.String)也被称为第九种基础数据类型,它是jdk中最常用的类,没有之一。在第四章我们为了向控制台输出"Hello World"创建的类HelloWorldObject有一个String hello的属性,这个就是字符串的应用。我们可以使用
String hello = "hello world";
String hello = new String("hello world");
两种方式为初始化字符串,比较常用的是第一种。

前面学习数学运算符的时候在控制台输出了所有运算的结果值,我们输出结果值的时候同时也输出了方程式结果会更清晰,比如"3 + 7 = 10"。字符串之间使用"+"就是拼接,比如'System.out.println(variable1 + " + " + variable2 + " = " + sum);'语句中的"variable1 + " + " + variable2 + " = " + sum"。这个语句中variable1、variable2 、sum是int类型,系统仍然按照字符串处理了,因为存在字符串"+"和"=",当语句中“+”并且存在字符串时,所有的变量做字符串处理。字符串的拼接还有另外一种方式,使用StringBuilder工具类。

//定义变量
intvariable1 = 3;
intvariable2 = 7;
//加法
intsum = variable1 + variable2;
StringBuilder stringBuilder = newStringBuilder();
stringBuilder.append(variable1).append(" + ").append(variable2).append(" = ").append(sum);
System.out.println(stringBuilder.toString());  

这两种的方式都比较常用,StringBuilder性能要高一些,但是操作比较麻烦。建议链接的字符串个数超过5个以上使用StringBuilder的方式。

前面我们一起学习过几次数据类型,那么基础数据类型和String之间是怎么转换的呢?

String intString = "10";
intnum = 11;
System.out.println(String.valueOf(num));
System.out.println(Integer.valueOf(intString));  
System.out.println(Integer.parseInt(intString));  

int类型转换为String除了前面提到的使用+字符串,还可以使用String.valueIf(int)的方法。String向int转换可以使用int的包装类Integer.valueOf(String)和Integer.parseInt(String)两种方法。其他的几种基础数据类型与String的转换和int类似,都是调用String.valueOf和包装类的valueOf和parseXXX的方法,大家可以试试其他的转换。

"=="比较运算符是判断符号两侧的变量是否相等,如果两个字符串直接比较会是什么结果呢。

//字符串的比较
String abc = "abc";
String abc2 = "abc";
String abc3 = newString("abc");
System.out.println("abc == abc2:"+ (abc == abc2));  
System.out.println("abc == abc3:"+ (abc == abc3));    

输出结果为:
abc == abc2:true
abc == abc3:false
只所以出现这样的结果,和String再java虚拟机的存储有很大的关系,这部分涉及的知识太比较深,这里就不在叙述了。我们期待的结果都是true,因为都是字符串"abc",所以字符串的比较不能使用"==",需要使用String的equals方法,代码如下:

System.out.println("abc.equals(abc2):"+ abc.equals(abc2));
System.out.println("abc.equals(abc3):"+ abc.equals(abc3));  

输出结果为:
abc.equals(abc2):true
abc.equals(abc3):true

字符串其他常用的方法还包括:
获取字符串长度length(),字符串截取substring(begin,end),index位置上的字符charAt(index),这里的begin,end和Index都是字符在字符串中的位置,起始inex为0,这点需要注意,具体的代码如下:

System.out.println("abc.length():"+ abc.length());
System.out.println("abc.substring(1, 2):"+ abc.substring(1, 2));
System.out.println("abc.charAt(1):"+ abc.charAt(2));  

小练习:作业 打印以下文字中英文字母a-z(不区分大小写)分别的出现次数
* The class <code>String</code> includes methods for examining
* individual characters of the sequence, for comparing strings, for
* searching strings, for extracting substrings, and for creating a
* copy of a string with all characters translated to uppercase or to
* lowercase. Case mapping is based on the Unicode Standard version
* specified by the {@link java.lang.Character Character} class.

课程中的代码如下:

packagecom.sunhaojie.learntest.eighth;
/**
 * @ClassName StringTest
 * @Description 字符串的测试类
 *
 * @author sunhaojie 3113751575@qq.com
 * @date 2016年2月1日 上午10:44:40
 */
publicclassStringTest {
    /**
     * @Title main
     * @Description 字符串测试
     * @param args
     * @return void
     *
     * @author sunhaojie 3113751575@qq.com
     * @date 2016年2月1日 上午10:44:40
     */
    publicstaticvoidmain(String[] args) {
        //定义变量
        intvariable1 = 3;
        intvariable2 = 7;
        //加法
        intsum = variable1 + variable2;
        StringBuilder stringBuilder = newStringBuilder();
        stringBuilder.append(variable1).append(" + ").append(variable2).append(" = ").append(sum);
        System.out.println(stringBuilder.toString());
        //类型转换
        String intString = "10";
        intnum = 11;
        System.out.println(String.valueOf(num));
        System.out.println(Integer.valueOf(intString));
        System.out.println(Integer.parseInt(intString));
        //字符串的比较
        String abc = "abc";
        String abc2 = "abc";
        String abc3 = newString("abc");
        System.out.println("abc == abc2:"+ (abc == abc2));
        System.out.println("abc == abc3:"+ (abc == abc3));
        System.out.println("abc.equals(abc2):"+ abc.equals(abc2));
        System.out.println("abc.equals(abc3):"+ abc.equals(abc3));
        //其他常用字符串的方法
        System.out.println("abc.length():"+ abc.length());
        System.out.println("abc.substring(1, 2):"+ abc.substring(1, 2));
        System.out.println("abc.charAt(1):"+ abc.charAt(2));
    }
}

建议继续学习:

  1. 字符串匹配那些事(一)    (阅读:5762)
  2. 一个十分有趣的字符串算法题目    (阅读:4368)
  3. JSON对象和字符串之间的相互转换    (阅读:2944)
  4. JS中如何判断字符串类型的数字    (阅读:2501)
  5. php中数组与字符串    (阅读:2372)
  6. 谈谈Go语言的字符串设计    (阅读:1517)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1