[Java基础教程]第八章-Java字符串
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));
}
}建议继续学习:
- 字符串匹配那些事(一) (阅读:6630)
- 一个十分有趣的字符串算法题目 (阅读:5016)
- JSON对象和字符串之间的相互转换 (阅读:3351)
- JS中如何判断字符串类型的数字 (阅读:3190)
- php中数组与字符串 (阅读:3034)
- 谈谈Go语言的字符串设计 (阅读:2308)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:sunhaojie 来源: 孙豪杰的博客
- 标签: 字符串
- 发布时间:2016-02-21 11:32:24
-
[902] WordPress插件开发 -- 在插件使用 -
[135] 解决 nginx 反向代理网页首尾出现神秘字 -
[56] 整理了一份招PHP高级工程师的面试题 -
[55] Innodb分表太多或者表分区太多,会导致内 -
[53] 如何保证一个程序在单台服务器上只有唯一实例( -
[52] CloudSMS:免费匿名的云短信 -
[52] 海量小文件存储 -
[52] 全站换域名时利用nginx和javascri -
[51] 用 Jquery 模拟 select -
[50] 分享一个JQUERY颜色选择插件
