1、文件输入与输出
对文件进行读取Scanner in=new Scanner(Path.get("file.txt"),"UTF-8");
读取文本文件时要知道它的字符编码,省略则为默认编码
写入文件,构造PrintWriter对象,构造器中提供文件名:
PrintWriter out=new PrintWriter("file.txt","UTF-8");
Scanner in=new Scanner("file.txt");,则Scanner将字符串解释为数据
PrintWriter(String fileName)
构造一个将数据写入文件的PrintWriter
static Path get(String pathname)
根据给定的路径名构造一个Path
2、中断控制流程语言
在嵌套很深的循环语句中,可以使用read_data:跳到嵌套的所有循环语句之外,记得要紧跟这冒号,标签必须放在希望跳出的最外层循环之前,然后在该加break的地方变为
break read_data;
3、for each循环
for(int element:a)
System.out.println(element);
打印数组a的每一行元素,一个元素一行
System.out.println(Arrays.toString(a));利用Arrays类中的toString方法打印数组中的所有值
4、数组拷贝
可以查询Arrays类中的copyOf()与copyOfRange()
5、命令行参数
我更喜欢http://blog.csdn.net/sum_tw/article/details/55820376这里所讲的
6、数组排序
Arrays.sort(数组名)采用的是快速排序
7、二维数组的for each循环
for each循环语句不能自动处理二维数组的每一个元素,按一维数组来处理,若要访问则使用两个嵌套循环
for(double[] row:a)
for(double value:row)
do something with value
要想快速打印二维数组的数据则:System.out.println(Arrays.deepToString(数组名));
8、不规则数组
package 不规则数组;
public class LotteryArray {
public static void main(String[] args) {
final int NMAX=10;
int[][] odds=new int[NMAX+1][]; ///分配一个具有所含行数的数组
for(int n=0;n<=NMAX;n++)
odds[n]=new int[n+1];
for(int n=0;n<odds.length;n++)
for(int k=0;k<odds[n].length;k++)
{
int lotteryOdds=1;
for(int i=1;i<=k;i++)
{
lotteryOdds=lotteryOdds*(n-i+1)/i;
}
odds[n][k]=lotteryOdds;
}
for(int [] row:odds)
{
for(int odd:row)
System.out.printf("%4d",odd);
System.out.println();
}
}
}
结果:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1