几个常见的java内置对象
1.Scanner类——java.util.Scanner
Scanner 是标准输入流,IO流,是不可被继承的类。
一个Scanner打破它的输入令牌使用分隔符模式,默认匹配空格。
例如,该代码允许用户从System.in读数:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt(); //从控制台输入
常用方法:
next() // 从控制台获取字符串
nextInt() //从控制台获取一个int类型的值
nextDouble() //从控制台获取一个double类型的值
nextLong() //从控制台获取一个long类型的值
nextShort() //从控制台获取一个short类型的值
nextByte() //从控制台获取一个byte类型的值
nextLine() //从控制台获取一行字符串
import java.util.Scanner;
public class Demo0 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s = sc.next();
System.out.println("请输入一个整数:");
int n = sc.nextInt();
System.out.println(s);
System.out.println(n);
}
}
2.Math类——java.lang.Math
Math类是不可被继承的类,包含用于执行基本的数字运算等基本指数、对数、平方根法、三角函数,是不可继承的类。
常用方法:
PI // 圆周率, 属性
E // 自然常数,属性
abs(num) // 返回num值的绝对值
cbrt(a) // 开立方根
ceil(a) // 向上取整
floor(a) // 向下取整
pow(a, b) // a^b 幂次方
sqrt(a) // a的平方根
random() // 获取一个[0, 1)的随机小数
max(a, b) //获取a和b中较大的值
min(a, b) //获取a和b中较小的值
public class Demo0 {
public static void main(String[] args) {
System.out.println(Math.PI); //3.141592653589793
System.out.println(Math.E); //2.718281828459045
System.out.println(Math.abs(-10)); //10
System.out.println(Math.cbrt(27)); //3.0
System.out.println(Math.ceil(1.0000001)); //2.0
System.out.println(Math.floor(1.999999)); //1.0
System.out.println(Math.pow(2, 10)); //1024.0
System.out.println(Math.sqrt(9)); //3.0
System.out.println(Math.random()); //0.3971099614319069
System.out.println(Math.max(5,9)); //9
System.out.println(Math.min(5, 9)); //5
}
}
3.Random类——java.util.Random
这个类的一个实例是用于生成伪随机数流。
随机算法的起源数字被成为种子数(seed)。
虽然Random类产生的数字是随机的,但在相同种子数(seed)下的相同次数产生的随机数是相同的(伪随机)。
Random中共有两种构造方法
1、public Random()
此构造方法是以系统自身的时间为种子数来构造Random对象。
2、public Random(long seed)
此构造方法可以自己来选定具体的种子来构造Random对象。
四、常用方法
random.nextInt() 返回值为整数,范围是int类型范围
random.nextLong() 返回值为长整型,范围是long类型的范围
random.nextFloat() 返回值为小数,范围是[0,0.1]
random.nextDouble() 返回值为小数,范围是[0,0.1]
random.nextBoolean() 返回值为boolean值,true和false概率相同
例:
import java.util.Random;
public class Demo0 {
public static void main(String[] args) {
Random random = new Random();
for (int i = 0; i < 10; i++){
int r = random.nextInt(100);//产生一个0~100的整数
System.out.println(r);
}
}
}
4.字符串对象(String)—— java.lang.String
字符串:字符连在了一起,形成了字符串。
在Java中,一般表现为"",引号的内部内容就是字符串。
在java中,字符串是引用数据类型(对象)。
定义字符串:
String s = "Hello World!"; // 定义了一个字符串
第二种定义方式
//new String() 获取字符串
String ss = new String(); // 等价于 String ss = "";
String sss = new String("Hello World");
// 等价于 String sss = "Hello World";
注:字符串是一个常量,是一种不可变的数据类型
常见的字符串方法:
charAt(i) // 获取下标对应的字符
length() // 返回字符串的长度
codePointAt(i) // 获取下标对应的字符的Unicode值
concat(str) // 拼接字符串
contains(str) // 是否包含str字符串
static copyValueOf(char[]) //与valueOf(char[])一样,返回的 char数组参数的字符串表示形式。
endsWith(suffix) //测试如果这个字符串以指定的后缀结束。
startsWith(prefix) //测试如果这个字符串以指定的后缀开始。
equals(str) //将此字符串与指定的对象比较
equalsIgnoreCase(str) //将此字符串与指定的对象忽略大小写比较
getBytes() //将字符串转换为字节数组
indexOf(str) //返回指数在这个字符串指定的子字符串中第一个出现的。
lastIndexOf(str) //返回指数在这个字符串的指定子字符串中最后出现
isEmpty() //判断字符串是否为空
replace(oldstr, newstr) //将一个字符串替换为另一个字符串
static join(标识符, 字符串数组)//
split(regex) //将这个字符串按照指定的正则表达式分割。
substring(index) //截取字符串
substring(start, end) //从start截取到end
toCharArray() //将此字符串转换为一个新的字符数组
toLowerCase() //将字母转换为小写
toUpperCase() //将字母转换为大写
trim() //去除字符串的前后空格
valueOf() //返回的 char数组参数的字符串表示形式。
public class Demo0 {
public static void main(String[] args) {
String a = " Hello World! ";
//字符串的基本操作
int len = a.length(); //取得字符串的长度
char c = a.charAt(4); //提取出a中索引为4的字符,也就是o
int d = a.indexOf("r"); //取得指定字符的索引
String e = a.trim(); //去掉字符串首尾的空格
String f = a + "adfa"; //字符串的拼接
String g = a.substring(1,4); //字符串的子串
String h = a.replace("llo","he"); //字符串的替换
System.out.println(len);
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
System.out.println(g);
System.out.println(h);
//将整数转换为字符串
int i = 123;
String j = String.valueOf(i);
System.out.println("---将整数转为字符串---");
System.out.println(j);
}
}
注意:字符串不要使用等于符号判断是否相等
在java中 == 判断的值的,不能用来判断字符串
因为字符串的创建方式有多种,不同的创建方式,地址(指针)可能不一样
基本数据类型都是可以使用 == 判断是否相等
字符串不能还是用 == 判断是否相等
字符串中 == 判断的字符串的地址
equals判断是字符串的值;
课堂案例:给定一个字符串,判断该字符串是否是回文字符串
import java.util.Scanner;
public class Demo07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = sc.next();
boolean b = isPalindrome(str);
if (b){
System.out.println(str + " 是回文字符串");
}else {
System.out.println(str + " 不是回文字符串");
}
}
public static boolean isPalindrome(String str){
for (int start = 0, end = str.length() - 1; start <= end; start++,end--){
if (str.charAt(start) == str.charAt(end)){
return true;
}
}
return false;
}
}