1.4字符串
-
String类的substring方法:从较大的类里面提取一个子类,例如:
String x = "abcdefg"; String y =x.substring(0,4);//y的字符串就是"abcd"(不包括第4个) -
新的String可以由两个老的String直接拼接;若其中有非字符串的,则自动转换成字符串,例如:
String x ="dog"; String y = "cat"; String z = x+y;//直接相加 ------------------------------------ int a = 10; String b ="abc"+a;//b为"abc10",(在System.out中很多见) String类的对象为不可变字符串;字符串常量池:编译器让字符串共享。(只有字符串常量是共享的,通过各种方法重新产生的新的字符串不是共享的,如substring等)
-
用equals(不区分大小写可以用equalsIgnoreCase)检测字符串是否相等(而非==);同时字符串比较的时候完全可以字符串变量和字符串字面量比较,例如:
"abc".equals(X)//字面量和变量比较 -
“” :(一个Java对象,长度0,内容空)和 null:(String变量存放null表示还没有任何对象和该变量相关联),既不是空串又不是null的检查方法:
if(Str.length()!=0&&Str!=null) StringBuilder:字符串构建器,builder.append():添加内容,builder.toString():转成String字符串
1.5 输入和输出
-
输入:构造Scanner这个类的对象://Scanner定义在java.util包里面(而非基本的java.lang),需要导包
Scanner sc = new Scanner(System.in); String x =sc.nextLine();//nextline处理带有空格的输入内容,next处理不带空格的输入内容,整数:nextInt,浮点:nextDouble -
输出:格式化输出:printf,
public class test2 { public static void main(String[] args) { String name = "zhangsan"; int age = 23; double dollar =25.78332435; System.out.printf("%s,%d,%f",name,age,dollar); } }//输出的结果是zhangsan,23,25.78332435(参数与%的说明符一一对应,这个要注意顺序对应) ·-------------------------------------------------------------------------------------------------------- String message =String.format("%s,%d,%f",name,age,dollar); //用格式化方法直接创造字符串的时候,可以用静态的format方法,作用于String类 文件的输入和输出:暂时没太懂,后面学习。。
1.6 控制流程
块(block):大括号里面的若干条java语句,用以控制变量的作用域。一个块可以嵌套在另一个块里面,嵌套的块里面不同声明一样的变量。独立的块可以声明一样的变量。
-
for/while/do...while(do...while是让代码先运行一次,再检测)。for支持迭代,例如:
for(int i =0,i<100,i++); /*int i = 0:初始化计数器 i<100:检测循环的次数 i++:计数器更新*/ switch语句:执行相匹配的case直到遇到break,若无匹配则直接运行default。(在switch中使用枚举常量的时候,格式遵循switch的格式,不必再指明枚举名如:直接case dog;而非case Animl.dog)
带有标签的break:直接给嵌套循环一个标签(abc),用break abc;直接跳出这个循环。continue:跳到最内层循环的首部。
BigInteger/BigDecimal:java.math的大数值类,实现任意精度的整数运算/浮点运算。用的是add、multiply方法