包和数组 (2)
辽宁经济职业技术学院信息系
硕士、副教授 陈英
命令行数组
每个 java程序都有一个带有 String[] args参数的 main方法。这
个参数表示 main方法接收了一个字符串数组,即位于命令行
上的参数。
例,public class Message
{
public static void main(String[] args)
{
if ( args[0].equals ( ―-h‖ ))
System.out.print( ― Hello,‖);
else if ( args[0].equals ( ―-g‖ ))
System.out.print( ― Goodbye,‖);
for (int i = 0; i <arg.length; i++ )
System.out.print( ― ‖ + args[ i ]);
System.out.print( ― ! ‖ );
}
}
如果程序被这么调用:
Java Message –g
cruel world
那么数组内容如下:
args[0],―-g‖
args[1],―cruel‖
args[2],―world‖
程序打印消息:
Goodbye,cruel world!
API java.text.NumgerFormat
Static NumberFormat
getPercentInstance()
返回一个 NumberFormat对象,以按照
当前地区的规则把百分数转换成字符串。
Static NumberFormat
getCurrencyInstance()
返回一个 NumberFormat对象,以按照
当前地区的规则把货币值转换成字符串。
数组
能够动态取得的内存有两种,一种是对象实体,
一种数组,
Java用 new申请内存,不需要自己释放不用的
内存,
在 Java中,定义数组时不必给出数组的大小,
因为 Java的数组是动态分配的。
数组变量实际上是一个引用变量,因此要实
例化才能使用。
例,int Array[]; Array=new int[8];
数组
在 Java中“引用”是指向一个对象在内存
中的位置,在本质上是一种带有很强的完整
性和安全性的限制的指针,
当你声明某个类,接口或数组类型的一个变
量时,那个变量的值总是某个对象的引用或
者是 null引用,
指针就是简单的地址而已,引用除了表示地
址而外,还象被引用的数据对象的缩影,还提
供其他信息,
指针可以有 ++,--运算,引用不可以运算,
数组
arrayOfString
for(int i=0;i<arrayString.length;i++)
arrayOfString[i]=new String(―Hello‖+i)
arrayOfString[0]
arrayOfString[1]
arrayOfString[8]
arrayOfString[9]
对数组的引用







例,String arrayOfString[]=new String[10];每个数组元素
包含一个对字符串对象的引用,此时值分配了包含字符串
引用的空间,并没有对字符串本身分配内存,此时不能访
问。
多维数组 ——数组的数组
Java编程语言没有象其它语言那样提供多维数
组 。 因为一个数组可被声明为具有任何基础类
型, 所以可以创建数组的数组 (和数组的数组的
数组, 等等 )。 每个数组有 5个整数类型的 4个数
组的数组如下例所示:
int twoDim [][] = new int [4][5];
twoDim[0] = new int[5];
twoDim[1] = new int[5];
int twoDim [][] = new int [][4]; //非法
多维数组
在 java中声明一个矩阵是很简单的,二维数
组 balance可以表示为,double [] [] balance;
在多维数组中访问数组元素时,要使用不止
一个下标。
在调用 new对此数组初始化之前不能使用此
数组。初始化方法为:
balance = new double[NRATES] [NYEARS]
―不规则数组”,即是一个不同行具有不同长
度的数组。
多维数组 ——数组的数组
因为这种对每个元素的分别初始化,所
以有可能创建非矩形数组的数组。也就
是说,twoDim的元素可按如下方式初始
化:
非矩形数组的数组
twoDim?0? = new int ?2?;
twoDim?1? = new int ?4?;
twoDim?2? = new int ?6?;
twoDim?3? = new int ?8?;
Java中的字符串
Java中的字符串类
String和 StringBuffer
String 类的定义和实例的生成
例, String str;
str=―this is a string‖
或, String str1=new String(―hello‖);
或, String str2=―aaaa‖;
String类与其它类型的转换
例 1:将实型数转换成字符串
System.out.println(String.valueOf(Math.PI));
Java中的字符串
有两个字符串 str1,str2
str1=str2; 是指两个引用指向同一个地址
str1.equals(str2)
是指两个字符串内容相等
获取 String对象的信息
例如,String s=―this is a string‖;
int len=s.length();
boolean result=s.equal(―this is a 特 test‖);
char ch=s.charAt(6);
Java中的字符串
? StringBuffer的字符串的内容是可以改变的
? 创建 StringBuffer对象
? StringBuffer str=new Stringbuffer(―hello‖);
? 获取 StringBuffer对象的信息
? int len=str.length();
例,StringBuffer sb=new StringBuffer(―Drink Java!‖);
sb.insert(6,‖Hot ‖);
System.out.println(sb.toString());
Drink Hot Java! System.out.println
接受的是 String类