关于args.length()的作用和一些用法
String args[]都是函数(或叫方法)的参数而已,和普通的方法参数没什么区别,String表示类型,args表示参数名。
表示在调用这个方法的时候需要给这个方法传递一个字符串数组。 而main方法作为程序的入口,给main方法传递参数的操作比较特殊,因为main方法在其他方法之前执行,所以如果给main方法传递参数需要在命令行或者IDE工具中制定,比如说你执行这样的一个程序
public class Test{
public static void main(String args[]){
System.out.println(args[0]);
}
}
如果用命令行执行,在编译好之后运行的时候就可以指定参数,比如说“ java Test helloworld”,(在myeclipse中run As的Run configuration中的argument传值)程序就会打印输出“helloworld”. 在多给一个例子说明一下:
public class Test{
public static void main(String args[]){
for(int i=0;i<args.length;i++){
System.out.print(args[i]+" ");
}
}
}
编译好之后,我们运行敲java Test a b c d 那么打印的结果便是a b c d(注意,每个输入的数之间有空格!)
一个例子:用args输入9个数,并将这九个数转换成int型,再进行从小到大的排列输出。
public class TestArray1{
public static void main(String args[]){
int[] a = new int[9];
System.out.print("输入的这些数分别是: ");
for(int i = 0;i<args.length;i++){
System.out.print(( a[i]=Integer.parseInt(args[i]))+" ");
}
for(int j = 1;j<=9;j++){
int temp;
for(int i=0;i<8;i++){
if(a[i]>a[i+1]){
temp = a[i];
a[i] = a[i+1];
a[i+1]=temp;
}
}
}
System.out.print("\n按从小到排序为:");
for(int i=0;i<9;i++){
System.out.print(a[i]+" ");
}
}
}
将上面的例子改进一下:将排序那部分改为选择排序;
public class TestArray1{
public static void main(String args[]){
int [] a = new int[args.length];
System.out.print("输入的这些数分别是: ");
for(int i = 0;i<args.length;i++){
System.out.print(( a[i]=Integer.parseInt(args[i]))+" ");
}
Sort(a,args.length);
}
public static void Sort(int[]a,int length){
//下面用选择排序做一下;
int temp;
for(int i=0;i<length;i++){
for(int j=i+1;j<length;j++){
if(a[i]>a[j]){
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
System.out.print("\n将输入的数字从小到大排序: ");
for(int i=0;i<9;i++){
System.out.print(a[i]+" ");
}
}
}
还是上面的例子,将选择排序法修改一下,改进效率
public class TestArray1{
public static void main(String args[]){
int [] a = new int[args.length];
System.out.print("输入的这些数分别是: ");
for(int i = 0;i<args.length;i++){
System.out.print(( a[i]=Integer.parseInt(args[i]))+" ");
}
Sort(a,args.length);
}
public static void Sort(int[]a,int length){
//下面是修改后的选择排序,算法变得更高效率!
int temp; for(int i=0;i<length;i++){
int k=i;//用k来记录当前最小的值;
for(int j=k+1;j<length;j++){
if(a[k]>a[j]){
k=j;
}
}
if(k!=i){
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
System.out.print("\n将输入的数字从小到大排序: ");
for( int i=0;i<9;i++){
System.out.print(a[i]+" ");
}
}
}