工具类
每个包装类都有一个静态的valueOf方法,用于将字符串转换成相应包装类的对象
public class LangDemo{
public static void main(String[] args){
String str="120";
//如果转换失败,引发NumberFormatException异常
Byte objByte=Byte.valueOf(str);
Short objShort=Short.value0f(str);
Integer objInt=Integer.valueOf(str);
Long objLong=Long.valueOf(str);
System.out.println(objByte);
System.out.println(objShort);
System.out.println(objInt);
System.out.println(objLong);
}
}
除了Boolean类和Character类以为,其它的包装类都有静态的parseXxx方法,用于将字符串转换成相对应的原始数据类型值。
public class ParseTest {
public static void main(String[] args) {
String str = "116";
//分别调用各个包装类的paseXxx方法对字符串进行转换,如果转换失败,将报异常
int i = Integer.parseInt(str);
short s = Short.parseShort(str);
byte b = Byte.parseByte(str);
long l = Long.parseLong(str);
float f = Float.parseFloat(str);
double d = Double.parseDouble(str);
System.out.println(i);
System.out.println(s);
System.out.println(b);
System.out.println(l);
System.out.println(f);
System.out.println(d);
}
}
boolean isLetter(char ch) ——判断字符ch是否为英文字母
boolean isDigit(char ch) ——判断字符ch是否为0-9之间的数字
boolean isUpperCase(char ch) ——判断字符ch是否为大写形式
boolean isLowerCase(char ch) ——判断字符ch是否为小写形式
boolean isWhitespace(char ch) ——判断字符ch是否为英文字母
以上方法为静态方法
public class CharacterDemo {
public static void main(String[] args) {
char[] charArray = {'*', '7', 'b', ' ', 'A'};
for (int i = 0; i < charArray.length; i++) {
if (Character.isDigit(charArray)) {
System.out.println(charArray + "是一个数字。");
}
if (Character.isLetter(charArray)) {
System.out.println(charArray + "是一个字母。");
}
if (Character.isWhitespace(charArray)) {
System.out.println(charArray + "是一个空格。");
}
if (Character.isLowerCase(charArray)) {
System.out.println(charArray + "是小写形式。");
}
if (Character.isUpperCase(charArray)) {
System.out.println(charArray + "是大写形式。");
}
}
}
}
数组
数组是一个变量,存储相同数据类型的一组数据
如何使用数组:
1、声明数组:int[] a或int a[];
2、分配空间:a=new int[5];
3、赋值:a[0]=8;
4、处理数据:a[0]=a[0]*10;
边声明边赋值:
1、int[] b={100,30,……};
2、int[] b=new int[]{32,34,56};
动态从键盘录入信息并赋值
Scanner input = new Scanner(System.in);
for(int i = 0; i < 30; i ++){
score = input.nextInt();
}
利用数组求平均值:
int [ ] score = {60, 80, 90, 70, 85};
int sum = 0;
double avg;
for(int index = 0; index < score.length; index++){
sum = sum + score[index];
}
avg = sum / score.length;
创建数组并赋值的方式必须在一条语句中完成
int[ ] score = new int[5];
score2 = {60, 80, 90, 70, 85};
编译出错
求最大值:
//计算成绩最大值
max = score[0];
for (int index = 1;index < 5;index++) {
if (score[index] > max) {
max = score[index];
}
}
System.out.println("本次考试的五位学生的最高分是: " + max);
排序:
import java.util.*; //导入包
……
int[ ] score = new int[5];
Scanner input = new Scanner(System.in);
System.out.println("请输入5位学员的成绩:");
for(int i = 0; i < 5; i++){
score = input.nextInt(); //依次录入5位学员的成绩
}
Arrays.sort(score); //排序-对数组进行升序排列
for(int index = 0; index < score.length; index++){
System.out.println(score[index]); //输出结果
}
有一列乱序的字符,‘a’,‘c’,‘u’,‘b’,‘e’,‘p’,‘f’,‘z’,排序并按照英文字母表的逆序输出
char list[ ] = {'a','c','u','b','e','p','f','z'};
Arrays.sort(list);
for (int i = list.length - 1; i >= 0; i-- ) {
System.out.println(list);
}
字符串
equalsIgnoreCase比较时忽略大小写
concat()字符串连接
String s = new String("你好,");
String name = new String("张三!");
String sentence = s.concat(name);
System.out.println(sentence);
输出结果:你好,张三!
Collections排序方法
public class GenericsList {
public static void main(String[] args) {
User user4= new User(11); // 创建用户对象
User user1 = new User(14);
User user2 = new User(13);
User user3 = new User(9);
List<User> userList = new ArrayList<User>(); // 创建集合对象,存放用户对象
userList.add(user4);
userList.add(user1);
userList.add(user2);
userList.add(user3);
for(User u:userList){
System.out.println(u.getUserAge());
}
Collections.sort(userList);//调用排序方法
for(User u:userList){
System.out.println(u.getUserAge());
}
}
IO流
File类
//在当前目录下创建一个与aaa.txt文件名相关联的文件对象
File f1 = new File("aaa.txt");
//指明详细的路径以及文件名,请注意双斜线或用反斜杠
File f2 = new File("D:\\Java\\Hello.java");
//指明详细的路径以及目录名,请注意双斜线
File f3 = new File("D:\\Java");
File类的常用方法
boolean exists()判断文件是否存在
boolean is File()判断是否为文件
boolean isDirectory()判断是否为目录
String getName()获得文件的名称
String getAbsolutePath()获得文件的绝对路径
long length()获得文件的长度
boolean createNewFile() throws IOException创建文件,有可能抛除IOException异常,必须捕捉
boolean delete()删除文件
public void say(int num){
num = 20;
System.out.println(num);
}
public static void main(String[] args){
Test test = new Test();
int num = 10;
test.say(num);
System.out.println(num);
}
}
打印结果为:20,10
结论:基本数据类型作为参数,在方法内部改变参数的值,不会影响到外部
打印结果为:20,20
结论:引用数据类型作为参数,在方法内部改变参数的状态,会影响到外部
public class Test{
public void say(StringBuffer strb){
strb = new StringBuffer(“bbb”);
strb.append(“ccc”);
System.out.println(strb.toString());
}
public static void main(String[] args){
Test test = new Test();
StringBuffer strb = new StringBuffer(“aaa”);
test.say(strb);
System.out.println(strb.toString());
}
}
结果:aaaccc,aaa
结论:引用数据类型作为参数,在方法内部改变了引用对象,不会影响到外部
class T{
int num = 10;
}
public class Test{
public void say(T t){
t = new T();
t.num = 20;
System.out.println(t.num);
}
public static void main(String[] args){
Test test = new Test();
T t = new T();
test.say(t);
System.out.println(t.num);
}
}
结果:20,10
结论:引用数据对象作为参数,在方法内部改变了对象,不会影响到外部