JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。
为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。

———————————————————————————————————————————-

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工具类。

[code lang=”java”]
//定义变量
int variable1 = 3;
int variable2 = 7;
//加法
int sum = variable1 + variable2;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(variable1).append(" + ").append(variable2).append(" = ").append(sum);
System.out.println(stringBuilder.toString());
[/code]

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

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

[code lang=”java”]
String intString = "10";
int num = 11;
System.out.println(String.valueOf(num));
System.out.println(Integer.valueOf(intString));
System.out.println(Integer.parseInt(intString));
[/code]

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

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

[code lang=”java”]
//字符串的比较
String abc = "abc";
String abc2 = "abc";
String abc3 = new String("abc");
System.out.println("abc == abc2:" + (abc == abc2));
System.out.println("abc == abc3:" + (abc == abc3));
[/code]

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

[code lang=”java”]
System.out.println("abc.equals(abc2):" + abc.equals(abc2));
System.out.println("abc.equals(abc3):" + abc.equals(abc3));
[/code]

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

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

[code lang=”java”]
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));
[/code]

小练习:作业 打印以下文字中英文字母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.

课程中的代码如下:

[code lang=”java”]
package com.sunhaojie.learntest.eighth;
/**
* @ClassName StringTest
* @Description 字符串的测试类
*
* @author sunhaojie 3113751575@qq.com
* @date 2016年2月1日 上午10:44:40
*/
public class StringTest {
/**
* @Title main
* @Description 字符串测试
* @param args
* @return void
*
* @author sunhaojie 3113751575@qq.com
* @date 2016年2月1日 上午10:44:40
*/
public static void main(String[] args) {
//定义变量
int variable1 = 3;
int variable2 = 7;
//加法
int sum = variable1 + variable2;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(variable1).append(" + ").append(variable2).append(" = ").append(sum);
System.out.println(stringBuilder.toString());
//类型转换
String intString = "10";
int num = 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 = new String("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));
}
}
[/code]

****************************************************************************************************
****************************************************************************************************
*******                                     Java免费在线培训学员招募                                          *******
****************************************************************************************************
****************************************************************************************************