-
前言
今天沉迷于王者,排位五连败,差点没写,今日事今日毕,开始总结
今天开始是半天学html,半天学java,HTML的话就挑一些重点写写博客吧 -
类型转换
今天学习的主要内容就是各个类型的转换 -
numberformat
这部分主要讲的是对number类型进行数据转换,如限制格式等
public class NumberFormatCase {
static NumberFormat nf1=NumberFormat.getInstance();//三个一组
static NumberFormat nf2=NumberFormat.getPercentInstance();//百分比,但是不能得到小数点后的内容
static NumberFormat nf3=NumberFormat.getCurrencyInstance();//货币的格式,默认人民币
static NumberFormat nf4=NumberFormat.getCurrencyInstance(Locale.US);//通过locale.国家可以输出该国的符号
public static void main(String args[]){
double d=546446.123;
double d2=0.856;
System.out.println(d);
System.out.println(nf1.format(d));
System.out.println(nf2.format(d2));
System.out.println(nf3.format(d));
System.out.println(nf4.format(d));
}
}
用numberformat这个对象进行定义,并引用其中的函数,可以对数字类新型进行处理。
不过这样也有一些问题,比如NumberFormat.getCurrencyInstance();它只能把小数点后两位转换成百分比,即87%这样,这样很死板,所以引入了新的数据转换格式
- DecimalFormate
DecimalFormate可以自由的确定数字的格式
public class DecimalFormateCase {//decimalformate也可以转化数据格式
static DecimalFormat df1=new DecimalFormat("000,000.0000");//定义格式,不存在时用0补全
static DecimalFormat df2=new DecimalFormat("###,###.####");//定义格式,不存在时省略
static DecimalFormat df3=new DecimalFormat("##.##%");
public static void main(String[] args){
double d=23113.1213;
double d2=0.84552;
System.out.println(df1.format(d));
System.out.println(df2.format(d));
System.out.println(df3.format(d2));
}
}
其中比较值得注意的就是用0和#的差别,可以应对多种情况
- Date
对date的学习
public class Datecase {
//使用不同的格式输出日期
static DateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
static DateFormat df2=new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
static DateFormat df3=new SimpleDateFormat("yyyy年/MM月/dd日 hh:mm:ss");
public static void main(String[] args) throws Exception{
Date d1=new Date();
System.out.println(d1);
System.out.println(df.format(d1));
System.out.println(df2.format(d1));
System.out.println(df3.format(d1));
String birth="1999-09-03 00:00:00";
Date d2=df.parse(birth);//将字符串转换成日期对象
int age=d1.getYear()-d2.getYear();//calendar,日历类,替代date类完成日期操作
System.out.println(age);
}
}
- 数组
对数组的学习
public class StudyArray {
public static void main(String args[]){
//两种定义方法
float[] grade={98,51,65.2f,47.4f,89};
int[] a=new int[10];
Arrays.sort(grade);
for (int i:a) {
System.out.print(i);
}
for(int i=0;i<grade.length;i++){
System.out.println(grade[i]);
}//ctrl+/快速加单行注释;ctrl+shift+\多行注释
}
}
- 集合框架
数组由于其天然的不可变性,有的时候使用起来很不方便,而且会造成资源浪费,这时候就引入集合框架进行处理
/*
* 按照功能分类多种多样:
* list、set、map。实训项目中只需要list
* list接口有多个典型的实现类
* 底层使用顺序表实现的ArrayList
* 底层使用链表实现的LinkedList
* 线程安全的List--Vect
*/
public class StudyCollection {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Integer> list=new ArrayList<>(15);//创建了一个list对象
//添加数据
/*
* 数据串的长度是四,容量是15
* 它到底容量是可扩充的
*/
list.add(45);
list.add(80);
list.add(1200);
list.add(54);
list.add(49);
list.add(0,97);//可以选择加入的位置
for (int i : list) {
System.out.println(i);
}
System.out.println(list.size());
System.out.println("-----------------------------");
//删除数据
list.remove(5);//删除指定位置
for (int i : list) {
System.out.println(i);
}
System.out.println(list.size());
System.out.println("-----------------------------");
list.remove(new Integer(97));
for (int i : list) {
System.out.println(i);
}
System.out.println(list.size());
System.out.println("-----------------------------");
//修改数据
list.set(1, new Integer(18));
for (int i : list) {
System.out.println(i);
}
System.out.println(list.size());
System.out.println("-----------------------------");
//查找数据
System.out.println(list.get(3));//找到那个位置的数据
System.out.println(list.indexOf(1200));//返回位置,若不在,返回-1
}
- 文件
public class ReaderCase {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
File file=new File("info.txt");
FileReader reader=new FileReader(file);
BufferedReader bReader=new BufferedReader(reader);//再套一层缓冲区
String temp=null;
int i=1;
while((temp=bReader.readLine())!=null){//把是否为空作为循环的标志
System.out.println("第"+i+"行");
System.out.println(temp);
i++;
}
//在结束后关闭io流是一个安全的操作
bReader.close();
reader.close();
}
}
其中readline函数每读取一行都会自动进下一行
再套一层缓冲区的意义是更方便的读取,即应用更多的方法,因为filereader里面都是对字符数组进行的操作,对于读取文本文件时很不实用,所以引入缓冲区其中的函数对读取文件更加简便。
- 总结
java的核心是对象,对于对象的应用是重中之重,不过其中某个对象的函数中的妙用恐怕只有经验才能累积,不亲自用到很难理解它到底是怎么用的,java封装了很多实用的函数,虽然效率不一定高,但是在大型的开发项目中自己编写函数显然很难,这也是为什么java开发这么火的原因吧,应用好这些函数是要时间来累积的。