常用类

常用类

字符串

  • 字符串是我们编程最常用的一种类型,远远高于所有的基本数据类型。特别是针对于输入输出,用户在输入或者接受输出的时候是意识不到数据类型的,那么他输入的所有东西和接收到的所有输出,其实都应该看成是字符串。

  • Java当中有多个专门用来处理字符串的类,String只是其中一种。

  • String类是经过专门设计的,它是具有引用数据类型的本质,但是使用上又可以像基本数据类型一样直接赋值。

  • 1、String的常量对象是预加载的,并且每个常量对象被放在一个叫做“字符串常量池”的地方;—提升了字符串常量使用的效率

  • 2、String对象的内容不可变;所有的改变其实都是产生了一个新的String对象;—降低了字符串使用的性能
    Java当中还设计了StringBuilder\StringBuffer这两个同样表示字符串的类的原因。

  • 3、Java为String设计了大量的API方法,可以帮助我们完成各种各样的功能,掌握得越多越熟练越好。

    1、String当中与数组有关的方法

    char[] array = str.toCharArray();// 将字符串中的字符取出来,以char[]的形式返回
    int length = str.length();// 获取字符串的长度
    char c = str.charAt(1);// 获取字符串中第几个位置是什么字符,下标是从0开始
    int index = str.indexOf(‘l’);// 获取某个字符在字符串当中第一次出现的下标位置,如果没有返回-1
    index = str.lastIndexOf(‘l’);// 获取某个字符在字符串当中最后一次出现的下标位置

// 2、String当中与字符串内容相关的方法

boolean flag = str.equals("hello");// 判断字符串内容是否相等
flag = str.equalsIgnoreCase("HeLlo");// 判断字符串内容在忽略大小写的情况下是否相等
int value = str.compareTo("hello");// 判断字符串的大小差值,按字典顺序(先比较第一对儿不同字符的差值,如果所有字符都一样,再比较长度)
value = str.compareToIgnoreCase("HellO");// 判断字符串之间忽略大小写的差值
str = str.toLowerCase();// 把字符串变全小写
str = str.toUpperCase();// 把字符串变全大写
flag = str.startsWith("WO");// 判断字符串以什么开头
flag = str.endsWith("LD");// 判断字符串以什么结尾



	// 3、String当中的特有的方法


	// 3-1、trim()----去掉一个字符串当中的前后空格!
		str = "   hello  world   ";
		str = str.trim();

		// 3-2、subString()----在字符串当中根据下标截取子串
		str = "helloworld";
//		str = str.substring(4);//从指定下标截取到最后,包含指定下标
		str = str.substring(4, 6);// 从指定开始下标截取到指定结束下标,前闭后开

		// 3-3、replace()---字符串内容替换
		str = "hellowrold";
		str = str.replace('l', 'f');// 把指定字符替换成新字符
		str = str.replace("f", "fuckyou");// 把指定子字符串替换成另一个字符串
		str = str.replaceAll("fuckyou", "l");// replaceAll功能相当于是把指定子字符串替换成另一个,但是它支持“正则表达式”!

		// 3-4、split()---拆分字符串
		String date = "hello?world?byebye";
		
		String[] strArray = date.split("[?]");// 根据指定的分隔符,对字符串进行拆分,返回字符串数组。它也支持“正则表达式”!
		System.out.println(strArray[0]);
		
		// 3-5、matches()---判断字符串是否满足正则表达式
//		String number = JOptionPane.showInputDialog("请输入您要拨打的电话号码:");//输入对话框
//		int choice = JOptionPane.showConfirmDialog(null, "你真的是男生吗?");//确认对话框
//		JOptionPane.showMessageDialog(null, "返回的是:" + choice);//消息对话框

//		if(number.matches("8320([0-9]{4}|11[09]|120)")) {
//			JOptionPane.showMessageDialog(null, "你拨打的是电子科技大学的号码。");
//		}else {
//			JOptionPane.showMessageDialog(null, "不认识你要拨打的号码");
//		}

//		String input = JOptionPane.showInputDialog("请输入你要存款的金额:");
//		
//		if(input.matches("(200|1[0-9]{2}|[1-9][0-9]?)00")) {
//			JOptionPane.showMessageDialog(null, "输入金额有效,马上准备为您服务");
//		}else {
//			JOptionPane.showMessageDialog(null, "您输入的金额格式不对,只能输入20000及以内的百元整钞。");
//		}

//		String input = JOptionPane.showInputDialog("请输入你的IP地址首位:");
//
//		if (input.matches("([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])")) {
//			JOptionPane.showMessageDialog(null, "输入地址有效,马上准备为您服务");
//		} else {
//			JOptionPane.showMessageDialog(null, "您输入的地址格式不对,只能输入0-255。");
//		}

StringBuffer类与StringBuilder 类

/*
* StringBuffer与StringBuilder 是专门用来解决
* 大量进行String的拼接而导致的产生很多String对象的问题。
*
* 首先出现的是StringBuffer,JDK1.0即提出
*/
//StringBuffer与String没有继承关系,所以StringBuffer不能向String
//一样用“”常量直接赋值。“”常量是String类型!!!
// StringBuffer sb = “hello”;
StringBuffer sb = new StringBuffer(“hello”);

+号做字符串拼接,只支持String,不支持StringBuffer

//		sb = sb + "world";
		sb.append("world");
		sb.insert(5, " ");
		
	System.out.println(sb);
		
	StringBuffer提供的方法不如String丰富,主要的作用就是做拼接
		//而它拼接的特点就是不产生新对象,直接是在原对象身上做改变。
		StringBuffer sb0 = new StringBuffer("ByeBye");
		StringBuffer sb1 = sb0;
		sb0.append(", World!");
		System.out.println(sb0);
		System.out.println(sb1);
  • StringBuilder是一个StringBuffer的补充类,两者的作用与提供方法都是一模一样的,
    * 都是用来替代String,完成内容可变的字符串拼接。StringBuilder出现在JDK1.5
    *
    * 两者的区别是:StringBuffer是线程同步的,StringBuilder是线程不同步的。
    * 所谓同步,是指线程安全性的实现手段。
    * 同步表示线程安全,不同步表示线程不安全;同步会导致运行效率低,不同步会导致运行效率高。
    */

时间类

  • 计算机保存时间的本质是用的什么数据类型?

    • 时间在计算机当中是以整数的形式存在的,存放的是当前时间距离时间原点过了多少毫秒。
      */

      //本方法是专门用来获取当前时间毫秒数的
      //我们可以使用它来获取一段代码的执行时间。

       long begin = System.currentTimeMillis();
       int num = 0;
       for(int i = 0; i < 1000; i++) {
       	System.out.println(++num);
       }
       long end = System.currentTimeMillis();
       System.out.println(end - begin);
        * 虽然时间在本质上是整数,但是由于作为整数无法方便快捷地操作和阅读时间日期信息,
        * 所以在Java当中还是提供了类来封装它。
        */
       Date date = new Date();//直接获取到当前的时间日期对象---这是用得最多的
       Date past = new Date(12346579846L);//根据指定的毫秒数构造Date对象 ---- 使用频率极低
      
      
      
       //现在对于Date最大的使用,就是配合SimpleDateFormat的类,对日期对象进行自定义格式化输出
       SimpleDateFormat sdf = new SimpleDateFormat("yy年MM月dd日 HH:mm:ss E D");
       String msg = sdf.format(date);
      

/如果要设置指定时间日期,请使用Calendar这个类
Calendar cal = Calendar.getInstance();//无需我们自己去产生子类对象,父类Calendar提供一个getInstance 方法直接返回给我们一个公历对象

	cal.set(year, month, date);
    past = cal.getTime();
    msg = sdf.format(past);
	System.out.println(msg);
    }

包装类

/*
* 包装类:包装类是Java专门给每种基本数据类型设计的对应的引用数据类型。
* byte short int long float double char boolean
* Byte Short Integer Long Float Double Character Boolean
*
* 每种包装类,都是对基本数据类型的封装;基本数据类型只能装数据,包装类除了能装数据,还提供方法可以操作这些数据。
* 另外,有了包装类,基本数据类型就可以和引用数据类进行转换。包装类是这种转换的桥梁。
*/

//1、基本数据类型转包装类对象

    //		int i = 100;
    //		Integer in = new Integer(i);//直接调用带参构造
    //		in = i;//这是JDK1.5以后提供的语法糖,其实它并不是直接赋值,而是由VM帮你new了Integer构造。
    //		System.out.println(in);
		
		//2、包装类对象转换为String
//		Integer in = 200;
//		String str = in.toString();
//		System.out.println(str);
		
		//3、String转int
//		String str = "300";
//		int i = Integer.parseInt(str);
//		System.out.println(i);
		
		//4、int转String
//		int i = 400;
//		String str = Integer.toString(i);
//		String str0 = i + "";
//		System.out.println(str);
		
		//5、String 转 Integer
//		String str = "500";
//		Integer in = new Integer(str);
//		System.out.println(in);
		
		//6、Integer 转 int
		Integer in = 600;
		int i = in.intValue();
		int i2 = in;//这是JDK1.5以后提供的语法糖,其实它并不是直接赋值,而是由VM帮你调用了intValue方法。
		System.out.println(i);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值