Java常用API(一)

本人小白一枚,欢迎大家一起讨论学习,如有错误,还望大家指教。

什么是Scanner类?
简述:一个使用正则表达式来解析基本类型和字符串的简单文本扫描器。
查看类
java.util.Scanner :该类需要import导入后使用。
查看构造方法
public Scanner(InputStream source) : 构造一个新的 Scanner ,它生成的值是从指定的输入流扫描的。
查看成员方法
public int nextInt() :将输入信息的下一个标记扫描为一个 int 值。
public String nextLine() : 将输入信息的下一个标记扫描为一个字符串String。
举例说明:
键盘录入三个数据,并获取最大值。

public static void main(String[] aaa) {
        Scanner scanner = new Scanner(System.in);
        int num1 = scanner.nextInt();
        int num2 = scanner.nextInt();
        int num3 = scanner.nextInt();
        int max;
        max = num1 > num2 ? num1 : num2;
        max = max > num3 ? max : num3;
        System.out.println("最大值:" + max);
    }

什么是Random类?
简述:此类的实例用来生成伪随机数。
查看类
java.util.Random :该类需要 import导入使后使用。
查看构造方法
public Random() :创建一个新的随机数生成器
查看成员方法
public int nextInt(int n) :返回一个伪随机数,范围在 0 (包括)和 指定值 n (不包括)之间的 int 值。
举例说明:
游戏开始时,会随机生成一个1~100之间的整数 number 。玩家猜测一个数字 guessNumber ,会与 number 作比较,系统提示大了或者小了,直到玩家猜中,游戏结束。

public static void main(String[] aaa) {
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();
        int number = random.nextInt(100) + 1;
        System.out.println(number);
        while (true) {
            System.out.println("请输入你要猜的数字:(1~100)");
            int guessNumber = scanner.nextInt();
            if (number < guessNumber) {
                System.out.println("猜大了!");
            } else if (number > guessNumber) {
                System.out.println("猜小了!");
            } else {
                System.out.println("猜对了!");
                break;
            }
        }
    }

什么是String类?
此类是我们在开发中使用的比较多类。java.lang.String 类代表字符串。Java程序中所有的字符串文字(例如 “abc” )都可以被看作是实现此类的实例。(public final class String extends Object,是不能被继承的)
查看构造方法:

  • public String() :初始化新创建的 String对象,以使其表示空字符序列。
  • public String(char[] value) :通过当前参数中的字符数组来构造新的String。
  • public String(byte[] bytes) :通过使用平台的默认字符集解码当前参数中的字节数组来构造新的 String

除了上面那三种使用构造器的方法创建字符串,我们还可以直接创建。String str = “Hello”;
注意:当我们直接写上双引号字符串,该字符串就存在于字符串常量池中。
在这里插入图片描述
在JDK6.0及之前版本,字符串常量池是放在Perm Gen区(也就是方法区)中;
在JDK7.0版本,字符串常量池被移到了堆中了。至于为什么移到堆内,大概是由于方法区的内存空间太小了。

特点:

  • 字符串不变:字符串的值在创建后不能被更改。
public static void main(String[] args) 
{
		String s1 = "abc";                  // 代表一个对象
		String s2 = new String("abc");      // 代表两个对象
		String s3 = "abc";
		
		System.out.println(s1 == s2);    // false
		System.out.println(s1 == s3);    // true
}
String s1 = "abc"; 
s1 += "d";
System.out.println(s1);
// "abcd"
// 内存中有"abc","abcd"两个对象,s1从指向"abc",改变指向,指向了"abcd"。
  • 因为String对象是不可变的,所以它们可以被共享。
String s1 = "abc"; 
String s2 = "abc"; 
// 内存中只有一个"abc"对象被创建,同时被s1和s2共享
  • "abc"等效于 char[] data={‘a’, ‘b’, ‘c’}。
String str = "abc";  
// 相当于:  
char data[] = {'a', 'b', 'c'};    
// String底层是靠字符数组实现的。
String str = new String(data); 

Stirng常用方法:

  • 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(规则)拆分为字符串数组。
public class String_Demo03 { 
    public static void main(String[] args)  {  
               //创建字符串对象     
               String s = "aa|bb|cc";     
               String[] strArray = s.split("|"); // ["aa","bb","cc"]    
               for(int x = 0; x < strArray.length; x++) {       System.out.println(strArray[x]); // aa bb cc 
               } 
        }
 }

当我们判断两个字符串是否相等时,推荐:“abc”.equals(str) 不推荐:str.equals(“abc”)
public boolean equalsIgnoreCase(String str):忽略大小写,进行内容比较。
StringBuffer(字符串缓冲区)
简述:可以对字符串增删,它是一个容器,很多方法与String相同,StringBuffer是可变长度的。
常用方法:

  • StringBuffer append():将指定的数据作为参数添加到已有数据的末尾处。
  • StringBuffer insert(index, 数据):可以将数据插入到指定位置。
  • StringBuffer delete(int start, int end):删除缓冲区中的数据,包含start,不包含end。
  • StringBuffer deleteCharAt(int index):删除指定位置的字符。
  • char charAt(int index):获取指定下标的字符。
  • int indexOf(String str):获取指定子串的位置。
  • int lastIndexOf(String str):获取子串最后一次出现的位置。
  • int length():获取字符串的长度。
  • String substring(int start, int end):截取字符串,包括开始,不包括结束。
  • StringBuffer replace(int start, int end, String str):把指定的位置替换为子串,包括开始,不包括结束。
  • void setCharAt(int index, char ch):设置指定位置的字符。
  • StringBuffer reverse():字符串反转。
    StringBuilder类
    简述:一个可变的字符序列,此类提供了一个与StringBuffer兼容的API,但不保证同步,该类设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候,如果可能,建议优先使用该类。
    StringBuffer:是线程同步,而StringBuilder是线程不同步。
    StringBuilder的好处:
  • 提高效率
  • 简化书写
  • 提高安全性

什么是Arrays类?
简述:java.util.Arrays 此类包含用来操作数组的各种方法,比如排序和搜索等。其所有方法均为静态方法,调用起来非常简单。
操作数组的方法:
public static String toString(int[] a):返回指定数组内容的字符串表示形式。
public static void sort(int[] a):对指定的int型数组按数字升序进行排序。
什么是Math类?
简述:java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单。
基本运算的方法:

  • public static double abs(double a):返回double值的绝对值。
  • public static double ceil(double num):向上取整。
  • public static double floor(double num):向下取整。
  • public static long round(double num):四舍五入。
  • Math.PI代表近似的圆周率常量(double)。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值