上一节里我们讲到了常见的String类的用法,大家注意区分String和StringBuffer的异同。这一节我们讲解一下String类的常见方法、在编程过程中经常遇到的一些字符、数值之间的转换和数组。
String类里包含了很多方法,大家可以去查询API了解一下。String类常见的有:
charAt(int index)返回在index位置的元素
contains(CharSequence s) 返回s是否在字符串的判断结果
isEmpty()返回字符串是否为空的判断结果
我们举一个contains(CharSequence s)的例子:
public class LoveJava4_2
{
/**
* @param args
*/
public static void main(String[] args)
{
String str=new String("I can be there for you");
System.out.println(str.contains("can"));
System.out.println(str.contains("hello"));
}
}
运行结果为:
true
false
在实际的编程开发中,我们经常会碰见这样的情况,比如在中级教程图形界面编程GUI里,文本框JTextField一般只能用于显示字符串,那么如果我们想让它显示数值的时候,就会涉及到将数值转换为字符串的问题;反之,如果我们想获取文本框里面输入的数值,那么就首先得将文本框里的字符串转换为相应的数值。请看如下代码:
String name=new String("Tom");
String sex=new String("male");
int age=20;
String student=new String();
现在,我想让Tom的信息以"Tom male 20"格式保存在一个String对象当中,并将之通过控制台显示出来,我们应该怎么做呢?
因为这里的age是int类型的,故如果我们通过student=name+" "+sex+" "+age方式来完成对student进行赋值的话,编译器就会报错,因为age和其余三个变量不是相同的类型。这里,我们就需要引入Integer类,我们可以通过以下方式来完成操作:
Student=name+" "+sex+" "+Integer.toString(age);
那么,现在编译器就不会报错了,Integer的toString()方法将int类型的变量age转换成为了String类型的变量。
现在如果age不再是int类型,而是String类型,我们想执行int birthday=2011-age,那又该怎么处理呢?接下来就要引入Integer类的另一个方法parseInt(),这个方法可以将String类型的变量转换成int类型。
我们用以上的一个例子来程序实现:
public class LoveJava4_2_2
{
/**
* @param args
*/
public static void main(String[] args)
{
String name=new String("Tom");
String sex=new String("male");
int age=20;
String student=new String();
student=name+" "+sex+" "+Integer.toString(age);
System.out.println(student);
}
}
运行结果:
Tom male 20
在数值运算中,对double和float类型的数据操作也可以采用类似方法,这里就不累述了。
数组也是编程中经常用到的数据结构,数组可以是一维的,也可以是多维的。在实际编程中一维数组和二维数组用得比较多,下面我们简要介绍以下数组的基本使用方法。
Java中数组的定义方法可以与C++里面一样,比如char array[],但是Java里还有一种特别的定义方法,即char[] array,这样的话,我们就可以把array理解为一个char数组类型的变量。然而,在数组的定义中还有另外一个重要的不同点,在Java中定义数组时不得设定其初始值大小比如int[10] array这样的定义方法编译器会报错。
public class LoveJava4_2_3
{
/**
* @param args
*/
public static void main(String[] args)
{
String[] array=new String[]{"Tom","Jack","Tomy"};
for(String str:array)
{
System.out.println(str);
}
}
}
运行结果:
Tom
Jack
Tomy