Java学习笔记一:数组、键盘输入

编写程序实现数组转置

本程序思想较为简单,但是,在我们定义Java数组过程中,我们应当注意一些操作。先给出程序代码,再进行分析

import	java.util.*;
public class ju {
	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);   //定义一个input输入对象
		int[][] Aerry=new int[3][3];
		int num;
		for(int i=0;i<3;i++) {						//用于得到数组
			System.out.println("请在下方输入"+i+"行元素");
			for(int j=0;j<3;j++) {
				System.out.print("请输入"+j+"列元素\t");
				Aerry[i][j]=input.nextInt();
			}
		}
		for(int i=0;i<3;i++) {					//转置数组	
			for(int j=0;j<i;j++) {
				num=Aerry[i][j];
				Aerry[i][j]=Aerry[j][i];
				Aerry[j][i]=num;
			}
		}
		for(int i=0;i<3;i++) {						//打印数组
			for(int j=0;j<3;j++) {
				System.out.print(Aerry[i][j]+"\t");
			}
			System.out.println("\n");
		}
		input.close();                         //关闭输入
	}
}

得到的程序运行结果(界面不是很美观)

请在下方输入0行元素
请输入0列元素    1
请输入1列元素    2
请输入2列元素    3
请在下方输入1行元素
请输入0列元素    1
请输入1列元素    2
请输入2列元素    3
请在下方输入2行元素
请输入0列元素    1
请输入1列元素    2
请输入2列元素    3
1    1    1    

2    2    2    

3    3    3    

这里面我们需要注意两个点:

1、数组

(1)int[][] Aerry在栈内存中分配了一块空间,这个空间存放了一个地址,通过这个地址我们可以得到一个堆内存,然后在本例中,堆内存(由栈内存指向的)分别存放了堆内存的地址,然后堆内存(由堆内存指向的)存放了具体的值。在数组初始化的过程中,倘若我们还没有对其赋值,默认的:int为0、float为0.0、boolean为false、引用数据类型为null

(2)在数组分配过程中,程序执行完,由JVM(Java Vritual Machine,Java虚拟机)的垃圾回收机制对堆内存中的空间进行回收。

(3)for(int n:num)        //其中num为int型的一维数组

这个方式为foreach遍历,不过为只读模式,无法通过这种方法对数组进行修改。

还有一种遍历方式:利用Arrays类中的toString功能

System.out.println(Arrays.toString(num));

他是将数组转换成一个字符串经行输出。

(4)可以利用数组的length属性,例如num.length查看数组长度



3、键盘输入

本博客介绍两种Java输入方式:

(1)利用java.util.Scanner类方法(本例中使用的方法)

1)首先要定义一个输入对象 Scanner input = new Scanner(System in);       //Java区分大小写

2)使用输入对象num=input.nextInt();                         //输入int数据类型

单精度:nextFloat()

双精度:nextDouble()

字符串:next()

3)最后还得使用input.close();                    //关闭输入流

(2)利用BufferedReader读入文本

//定义文本输入对象

BufferedReader buff = new BufferedReader(new InputStreamReader(System.in));

//使用

char str = buff.read();                         //读取单个字符

String str = buff.readLine();                    //读取字符串

这个方法较为繁琐。


通过上面的学习,我们更明白,在Java中,都是通过对类的操作进行的。可以编写一个行列不等的数组进行转置。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值