JAVA第八章 常用实用类

第八章 常用实用类

第八章内容不少,分清重点,
小结
(1)熟练掌握String类的常用方法,这些方法对于有效地处理字符序列信息是非常重要的。
(2)掌握String类和StringBuffer类的不同,以及二者之间的关系。
(3)使用StringTokenizer,Scanner类分析字符串,获取字符串中被分隔符分隔的单词。
(4)当程序需要处理时间时,使用Date和Calender类。
(5)如果需要处理特别大的整数,使用BigInteger类。
(6)当需要格式化日期和数字时使用String类的静态方法format。
这里是引用

1.String类

Java专门提供了用来处理字符序列的String类。
String类在java.lang包中,由于java.lang包中的类被默认引入,因此程序可以直接使用String类。
需要注意的是Java把String类声明为final类,因此用户不能扩展String类,即String类不可以有子类。

这些方法真的是有点多了,我放图。。。。图会比较清楚,不懂的再看下面所谓的官方文字解释
图片来源 ?点这个

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

?

  • 构造字符串对象

1.字符串:就是由多个字符组成的一串数据,也可以看成是一个字符数组。
2.字符串字面值“abc”也可以看成是一个字符串对象。
3.字符串是常量,一旦被赋值,(值)不可以再更改。
4.和其它对象一样,可以使用关键字和构造方法来创建String对象。
5.字面值对象和构造方法创建对象的区别
在这里插入图片描述

?

  • String类的常用方法

1.public int length():
获取一个字符串的长度
2.public boolean equals(String s):
比较当前字符串对象的实体是否与参数s指定的字符串的实体相同
3.public boolean startsWith(String s)
public boolean endsWith(String s)方法:

判断当前字符串对象的前缀(后缀)是否是参数s指定的字符串
tring tom = “天气预报,阴有小雨”,jerry = “比赛结果,中国队赢得胜利”;
tom.startsWith(“天气”)的值是true;
tom.endsWith(“大雨”)的值是false,
4. public int compareTo(String s):
按字典序与参数s指定的字符串比较大小
如果当前字符串与s相同,该方法返回值0;
如果当前字符串对象大于s,该方法返回正值;
如果小于s,该方法返回负值。
例如:
字符a在Unicode表中的排序位置是97、字符b是98,那么对于
String str = “abcde”; str.compareTo(“boy”)小于0;

其相关方法 public int compareToIgnoreCase(String s),
使用java.util包中的Arrays调用sort方法和自己编写SortString类中的sort方法将一个字符串数组按字典序排列 看下面例题1

5.public boolean contains(String s):
判断当前字符串对象是否含有参数指定的字符串s
例如 tom=“student”;那么tom.contains(“stu”)的值就是true;
而tom.contains(“ok”)的值是false。
6. public int indexOf (String s):
从当前字符串的头开始检索字符串s,并返回首次出现s的位置,
其相关方法:
indexOf(String s ,int startpoint)
lastIndexOf (String s)
例如
String tom = “I am a good cat”;
tom.indexOf(“a”);//值是2
tom.indexOf(“good”,2);//值是7
tom.indexOf(“a”,7);//值是13
tom.indexOf(“w”,2);//值是-1
7. public String substring(int startpoint):
获得一个当前字符串的子串
其相关方法:substring(int start ,int end)
例如: String tom = “我喜欢篮球”;
String s = tom.substring(1,3);
那么s是:“喜欢”
8.public String trim() :
得到一个s去掉前后空格后的字符串对象。

/*例题1*/

import java.util.*;
public class Example8_2 {
    public static void main(String args[]) {
       String [] a={"melon","apple","pear","banana"};
       String [] b={"西瓜","苹果","梨","香蕉"};
       System.out.println("使用SortString类的方法按字典序排列数组a:");
       SortString.sort(a);
       for(int i=0;i<a.length;i++) {
          System.out.print("  "+a[i]);
       } 
       System.out.println("");
       System.out.println("使用类库中的Arrays类,按字典序排列数组b:"); 
       Arrays.sort(b);
       for(int i=0;i<b.length;i++) {
          System.out.print("  "+b[i]);
       }
    }
}
 class SortString {
   public static void sort(String a[]) {
      int count=0; 
      for(int i=0;i<a.length-1;i++) {
          for(int j=i+1;j<a.length;j++) { 
              if(a[j].compareTo(a[i])<0) {
                  String temp=a[i];
                  a[i]=a[j];
                  a[j]=temp;
              }
          } 
      }
   }
}

?

  • 符串与基本数据的相互转化
  1. java.lang包中的Integer类调用其类方法:
    public static int parseInt(String s)
    可以将由“数字”字符组成的字符串,如“876”,转化为int型数据,
    在这里插入图片描述

类似地,使用java.lang包中的Byte、Short、Long、Float、Double类调相应的类方法可以将由"数字"字符组成的字符串,转化为相应的基本数据类型。如:
在这里插入图片描述

  • 可以使用String 类的类方法
    public static String valueOf(byte n)
    public static String valueOf(int n)
    public static String valueOf(long n)
    public static String valueOf(float n)
    public static String valueOf(double n)
    将形如123、1232.98等数值转化为字符串,如:
    String str = String.valueOf(12313.9876);

?

  • 对象的字符串表示
    所有的类都默认是java.lang包中Object类的子类或间接子类。
    Object类有一个public String toString()方法,一个对象通过调用该方法可以获得该对象的字符串表示。
    一个对象调用toString()方法返回的字符串的一般形式为:
    创建对象的类的名字@对象的引用的字符串表示

?

  • 1.字符串与字符、字节数组
    ◆ String 类的构造方法:
    String(char[])和String(char[],int offset,int length)
    分别用字符数组中的全部字符和部分字符创建字符串对象
    ◆ String类提供了将字符串存放到数组中的方法:
    public void getChars(int start,int end,char c[],int offset )
    ◆将字符串中的全部字符存放在一个字符数组中的方法:
    public char[] toCharArray()

  • 2.字符串与字节数组
    ◆ String(byte[])用指定的字节数组构造一个字符串对象。
    String(byte[],int offset,int length) 用指定的字节数组的一部分,即从数组起始位置offset开始取length个字节构造一个字符串对象。
    public byte[] getBytes() 方法使用平台默认的字符编码,将当前字符串转化为一个字节数组。
    public byte[] getBytes(String charsetName)
    使用参数指定字符编码,将当前字符串转化为一个字节数组。

?

  • 字符串的加密算法
    使用一个字符串password作为密码对另一个字符串sourceString进行加密 。将密码password存放到一个字符数组 char [] p = password.toCharArray();
    假设数组p的长度为n,那么就将待加密的字符串sourceString按顺序以n个字符为一组,对每一组中的字符用数组a的对应字符做加法运算

?

正则表达式:含有一些具有特殊意义字符的字符串
常用的元字符及意义,最明白的总结
点这个
说大实话,我分享很多次这个链接了,✨w3cshool真的很有用啊

2.StringBuffer类

(1)前面提到String对象一旦创建,那么实体是不可以再发生改变的
如: String s = new String(“我喜欢散步");
在这里插入图片描述
但是!!!
StringBuffer类能创建可修改的字符串序列,该类的对象的实体的内存空间可以自动的改变大小,便于存放一个可变的字符序列。一个StringBuffer对象调用append方法可以追加字符序列,如图819所示。例如:
StringBuffer s = new StringBuffer(“我喜欢”);
s.append(“玩篮球”);
在这里插入图片描述

(2)StringBuffer类有三个构造方法:

  • 1.StringBuffer()
    2.StringBuffer(int size)
    3.StringBuffer(String s)

(3)StringBuffer 类的常用方法

  • 1 . StringBuffer append(String s):将一个字符串对象追加到当前StringBuffer对象中
    StringBuffer append(int n):将一个int型数据转化为字符串对象后再追加到当前StringBuffer对象中
    StringBuffer append(Object o):将一个Object对象的字符串表示追加到当前StringBuffer对象中
    2. public chat charAt(int n ):得到参数n指定的置上的单个字符
    public void setCharAt(int n ,char ch):将当前StringBuffer对象实体中的字符串位置n处的字符用参数ch指定的字符替换
    3. StringBuffer insert(int index, String str) :将参数str指定的字符串插入到参数index指定的位置
    4. public StringBuffer reverse() :将该对象实体中的字符翻转
    5. StringBuffer delete(int startIndex, int endIndex):从当前StringBuffer对象实体中的字符串中删除一个子字符串
    其相关方法:deleteCharAt(int index) 删除当前StringBuffer对象实体的字符串中index位置处的一个字符。
    6. StringBuffer replace(int startIndex,int endIndex,String str):将当前StringBuffer对象实体中的字符串的一个子字符串用参数str指定的字符串替换
3.scanner类

使用Scanner类从字符串中解析程序所需要的数据。

(1).使用默认分隔标记解析字符串
创建Scanner对象,并将要解析的字符串传递给所构造的对象,
例如 String NBA = “I Love This Game”;
如下构造一个Scanner对象:
Scanner scanner = new Scanner(NBA);
通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据:

next()与nextLine()区别
next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
4、next()不能得到带有空格的字符串。
nextLine():
1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白

(2)
◆ scanner可以调用nextInt()或nextDouble()方法将数字型单词转化为int或 double数据返回。
◆ 如果单词不是数字型单词,scanner调用nextInt()或nextDouble()方法将发生InputMismatchException异常,在处理异常时可以调用next()方法返回该非数字化单词。

import java.util.*;
public class Example8_13 {
	public static void main(String[] args) {
		String cost="TV cost 876 dollar.Computer cost 2398 dollar.telephone cost 1278 dollars.";
        Scanner scanner=new Scanner(cost);
		double sum=0;
		while(scanner.hasNext()) {
		try {
			double price=scanner.nextDouble();
			sum=sum+price;
			System.out.println(price);
		}
		catch(InputMismatchException exp) {
		String t=scanner.next();	
		
		}
		}
		System.out.println("总消费:"+sum+"元");
	}
}
4.Date类与Calendar类
Date类在java.util包中。

1.使用Date类的无参数构造方法创建的对象可以获取本地当前时间。 Date()
例: Date nowTime=new Date();
当前nowTime对象中含有的日期、时间就是创建nowTime对象时的本地计算机的日期和时间。例如,假设当前时间是:2011年3月10日23:05:32(CST时区),那么
System.out.println(nowTime); 输出结果是:Thu Mar 10 23:05:32 CST 2011。
Date对象表示时间的默认顺序是:星期、月、日、小时、分、秒、年
2.使用带参数的构造方法 Date(long time)
计算机系统将其自身的时间的“公元”设置在1970年1月1日0时(格林威治时间),可以根据这个时间使用Date的带参数的构造方法:Date(long time)来创建一个Date对象
Date date1=new Date(1000), date2=new Date(-1000);
3. System类的静态方法 public long currentTimeMillis() 获取系统当前时间

calender类在java.util包中。

在这里插入图片描述

最近实在是不开心
在这里插入图片描述
在这里插入图片描述
剩下的去w3cshool看吧。。。。。。哎。。。。。。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值