天天看点

【Java基础系列】——Scanner+String+Random+ArrayList+Arrays+Math

需要更好的阅读的体验请移步 👉 小牛肉的个人博客 👈

文章目录

    • 1. Scanner 类
      • 导包
      • 作用
      • 构造方法
      • 成员方法
      • 实例
          • 匿名对象作为参数
          • 匿名对象作为返回值
    • 2. Random 类
      • 导包
      • 作用
      • 构造方法
      • 成员方法
      • 实例
    • 3. ArrayList 类
      • 导包
      • 作用
      • 构造方法
      • 成员方法
      • 实例
      • 如何存储基本数据类型
    • 4. String 类
      • 导包
      • 作用
      • 构造方法
      • 成员方法
      • 实例
    • 5. static 关键字
    • 6. Arrays 类
      • 导包
      • 作用
      • 操作数组的方法
      • 实例
    • 7. Math 类
      • 导包
      • 作用
      • 基本运算的方法
      • 实例

API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的 字典 ,是JDK中提供给 我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学 习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。

1. Scanner 类

导包

java.util.Scanner;

作用

一个可以解析基本类型和字符串的简单文本扫描器。

构造方法

public Scanner(InputStream source)

: 构造一个新的 Scanner ,它生成的值是从指定的输入流扫描的。

成员方法

  • public int nextInt()

    将输入信息的下一个标记扫描为一个 int 值。

实例

例如,以下代码使用户能够从 System.in 中读取一个数:

Scanner sc = new Scanner(System.in); 
int i = sc.nextInt();  // 接收一个键盘录入的整数
           
匿名对象作为参数
class Test {
 	public static void main(String[] args) {      
	 	input(sc);                //匿名对象作为方法接收的参数         
 	 	input(new Scanner(System.in));     
 	}      
 	public static void input(Scanner sc){          
	 	System.out.println(sc);         
 	}    
 }
           
匿名对象作为返回值
class Test2 {     
	public static void main(String[] args) {          // 普通方式             
		Scanner sc = getScanner();      
	}         
	public static Scanner getScanner(){            //普通方式            
		return new Scanner(System.in); 
	}      
}
           

2. Random 类

导包

java.util.Random

作用

用于生成伪随机数

构造方法

public Random()

:创建一个新的随机数生成器。

成员方法

public int nextInt(int n)

:返回一个伪随机数,范围在 0 (包括)和 指定值 n (不包括)之间的 int 值。

实例

使用Random类,完成生成3个10以内的随机整数的操作

【Java基础系列】——Scanner+String+Random+ArrayList+Arrays+Math

3. ArrayList 类

导包

java.util.ArrayList

作用

大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储 的元素。 ArrayList 中可不断的添加元素,其大小也自动增长。(类似于C++中的

vector

构造方法

public ArrayList()

:构造一个内容为空的集合。

基本格式:

在JDK 7后,右侧泛型的尖括号之内可以留空,但是<>仍然要写:

成员方法

  • public boolean add(E e)

    : 将指定的元素添加到此集合的尾部。 参数 E e ,在构造ArrayList对象时, 指定了什么数据类型,那么 add(E e) 方法中,只能添加什么数据 类型的对象。
  • public E remove(int index)

    :移除此集合中指定位置上的元素。返回被删除的元素。
  • public E get(int index)

    :返回此集合中指定位置上的元素。返回获取的元素。
  • public int size()

    :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。

实例

【Java基础系列】——Scanner+String+Random+ArrayList+Arrays+Math

如何存储基本数据类型

ArrayList对象不能存储基本类型,只能存储引用类型的数据。类似 不能写,但是存储基本数据类型对应的 包装类型是可以的。所以,想要存储基本类型数据, <> 中的数据类型,必须转换后才能编写,转换写法如下:

【Java基础系列】——Scanner+String+Random+ArrayList+Arrays+Math

4. String 类

导包

java.lang.String

所有 java.lang 包的下类都无须进行导包

作用

Java程序中所有的字符串文字(例如 “abc” )都可以被看作是实现此类的实例。

类 String 中包括用于检查各个字符串的方法,比如用于比较字符串,搜索字符串,提取子字符串以及创建具有翻 译为大写或小写的所有字符的字符串的副本。

构造方法

  • public String()

    :初始化新创建的 String对象,以使其表示空字符序列。
  • public String(char[] value)

    :通过当前参数中的字符数组来构造新的String。
  • public String(byte[] bytes)

    :通过使用平台的默认字符集解码当前参数中的字节数组来构造新的 String。
// 无参构造 
String str = new String();   

// 通过字符数组构造 
char chars[] = {'a', 'b', 'c'};      
String str2 = new String(chars);   

// 通过字节数组构造 
byte bytes[] = { 97, 98, 99 };      
String str3 = new String(bytes);
           

成员方法

判断

  • public boolean equals (Object anObject)

    :将此字符串与指定对象进行比较。
  • public boolean equalsIgnoreCase (String anotherString)

    :将此字符串与指定对象进行比较,忽略大小 写。

获取

  • public int length ()

    :返回此字符串的长度。
  • public String concat (String str)

    :将指定的字符串连接到该字符串的末尾。
  • public char charAt (int index)

    :返回指定索引处的 char值。
  • public int indexOf (String str)

    :返回指定子字符串第一次出现在该字符串内的索引。
  • public String substring (int beginIndex)

    :返回一个子字符串,从beginIndex开始截取字符串到字符 串结尾。
  • public String substring (int beginIndex, int endIndex)

    :返回一个子字符串,从beginIndex到 endIndex截取字符串。含beginIndex,不含endIndex。

转换

  • public char[] toCharArray ()

    :将此字符串转换为新的字符数组。
  • public byte[] getBytes ()

    :使用平台的默认字符集将该 String编码转换为新的字节数组。
  • public String replace (CharSequence target, CharSequence replacement)

    :将与target匹配的字符串使 用replacement字符串替换。

分割

  • public String[] split(String regex)

    :将此字符串按照给定的regex(规则)拆分为字符串数组。
    【Java基础系列】——Scanner+String+Random+ArrayList+Arrays+Math

实例

键盘录入一个字符,统计字符串中大小写字母及数字字符个数

【Java基础系列】——Scanner+String+Random+ArrayList+Arrays+Math

5. static 关键字

基本和C++中一样,此处就不多说了 (不理解的可以去找我的C++复习总结回顾系列)

注意一下Java中的 静态代码块

静态代码块:定义在成员位置,使用static修饰的代码块{ }。

位置:类中方法外。

执行:随着类的加载而执行且执行一次,优先于main方法和构造方法的执行。

【Java基础系列】——Scanner+String+Random+ArrayList+Arrays+Math

6. Arrays 类

导包

java.util.Arrays

作用

此类包含用来操作数组的各种方法,比如排序和搜索等。

其所有方法均为静态方法,调用起来非常简单。

操作数组的方法

  • public static String toString(int[] a)

    :返回指定数组内容的字符串表示形式。
    【Java基础系列】——Scanner+String+Random+ArrayList+Arrays+Math
  • public static void sort(int[] a)

    :对指定的 int 型数组按数字升序进行排序。
    【Java基础系列】——Scanner+String+Random+ArrayList+Arrays+Math

实例

将一个随机字符串中的所有字符升序排列,并倒序打印

【Java基础系列】——Scanner+String+Random+ArrayList+Arrays+Math

7. Math 类

导包

java.lang.Math

可不导

作用

java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具 类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单。

基本运算的方法

  • public static double abs(double a)

    :返回 double 值的绝对值。
  • public static double ceil(double a)

    :返回大于等于参数的最小的整数。
  • public static double floor(double a)

    :返回小于等于参数最大的整数。
  • public static long round(double a)

    :返回最接近参数的 long。(相当于四舍五入方法)
long d1 = Math.round(5.5); //d1的值为6.0 
long d2 = Math.round(5.4); //d2的值为5.0
           

实例

计算在 -10.8 到 5.9 之间,绝对值大于 6 或者小于 2.1 的整数有多少个?

【Java基础系列】——Scanner+String+Random+ArrayList+Arrays+Math