JAVA8在线APIJAVA11在线API 2、Scanner
使用 next 方法:
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据
// next方式接收字符串
System.out.println("next方式接收:");
// 判断是否还有输入
if (scan.hasNext()) {
String str1 = scan.next();
System.out.println("输入的数据为:" + str1);
}
scan.close();
}
}
使用 nextLine方法:
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据
// nextLine方式接收字符串
System.out.println("nextLine方式接收:");
// 判断是否还有输入
if (scan.hasNextLine()) {
String str2 = scan.nextLine();
System.out.println("输入的数据为:" + str2);
}
scan.close();
}
}
next()与nextLine() 区别
next():
一定要读取到有效字符后才可以结束输入。对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。不能得到带有空格的字符串。 nextLine():
以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。可以获得空白 如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持
但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取: 3、匿名对象
new Person().name = “Tom”;匿名对象只能使用一次该方法返回 double 值。 4、Random
random() 方法用于返回一个随机数,随机数范围为 0.0 =< Math.random < 1.0。
这是一个默认方法,不接受任何参数。
无范围
Random r = new Random();
int i = r.nextInt();
//生成i范围内的随机数
System.out.println(i);
有范围
Random r = new Random();
int n = 10;
//[获取1~n]的随机数
int i = r.nextInt(n) + 1;
System.out.println(i);
5、对象数组
略
6、字符串相关的类 6.1、StringString的特性
String类:代表字符串。(如 “abc” )。String是一个final类,代表不可变的字符序列。字符串是常量,用双引号引起来表示。它们的值在创建之后不能更改。String对象的字符内容是存储在一个字符数组value[]中的。String实现了Serializable序列化接口。String实现了Comparable接口。 6.2、String的常用方法
略
6.3、String与基本数据类型转换字符串 基本数据类型、包装类
Integer包装类的public static int parseInt(String s):可以将由“数字”字符组成的字符串转换为整型。类似地,使用java.lang包中的Byte、Short、Long、Float、Double类调相应 的类方法可以将由“数字”字符组成的字符串,转化为相应的基本数据类型。 基本数据类型、包装类 字符串
调用String类的public String valueOf(int n)可将int型转换为字符串相应的valueOf(byte b)、valueOf(long l)、valueOf(float f)、valueOf(double d)、valueOf(boolean b)可由参数的相应类型到字符串的转换
字符数组 字符串
String 类的构造器:String(char[]) 和 String(char[],int offset,int length) 分别用字符数组中的全部字符和部分字符创建字符串对象。 字符串 字符数组
public char[] toCharArray():将字符串中的全部字符存放在一个字符数组 中的方法。public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin):提供了将指定索引范围内的字符串存放到数组中的方法。 字节数组 字符串
String(byte[]):通过使用平台的默认字符集解码指定的 byte 数组,构 造一个新的 String。String(byte[],int offset,int length) :用指定的字节数组的一部分, 即从数组起始位置offset开始取length个字节构造一个字符串对象。 字符串 字节数组
public byte[] getBytes() :使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。public byte[] getBytes(String charsetName) :使用指定的字符集将 此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。 6.4、StringBuffer
java.lang.StringBuffer代表可变的字符序列,JDK1.0中声明,可以对字符 串内容进行增删,此时不会产生新的对象。很多方法与String相同。作为参数传递时,方法内部可以改变值。 6.4、StringBuilder 6.5、对比String、StringBuffer、StringBuilder
String(JDK1.0):不可变字符序列StringBuffer(JDK1.0):可变字符序列、效率低、线程安全StringBuilder(JDK 5.0):可变字符序列、效率高、线程不安全注意:作为参数传递的话,方法内部String不会改变其值,StringBuffer和StringBuilder 会改变其值。 7、时间类
略
8、Math类略
9、Java比较器Java实现对象排序的方式有两种:
自然排序:java.lang.Comparable 默认都是从小到大排列的
String:按照字符串中字符的Unicode值进行比较Character:按照字符的Unicode值来进行比较数值类型对应的包装类以及BigInteger、BigDecimal:按照它们对应的数值大小进行比较Boolean:true 对应的包装类实例大于 false 对应的包装类实例Date、Time等:后面的日期时间比前面的日期时间大Comparable接口强行对实现它的每个类的对象进行整体排序。这种排序被称 为类的自然排序。实现 Comparable 的类必须实现 compareTo(Object obj) 方法,两个对象即 通过 compareTo(Object obj)
方法的返回值来比较大小。如果当前对象this大于形参对象obj,则返回正整数,如果当前对象this小于形参对象obj,则返回 负整数,如果当前对象this等于形参对象obj,则返回零。实现Comparable接口的对象列表(和数组)可以通过 Collections.sort 或 Arrays.sort进行自动排序。实现此接口的对象可以用作有序映射中的键或有序集合中的元素,无需指定比较器。对于类 C 的每一个 e1 和 e2 来说,当且仅当 e1.compareTo(e2) == 0 与 e1.equals(e2) 具有相同的 boolean 值时,类 C 的自然排序才叫做与 equals
一致。建议(虽然不是必需的)最好使自然排序与 equals 一致。 定制排序:java.util.Comparator
当元素的类型没有实现java.lang.Comparable接口而又不方便修改代码, 或者实现了java.lang.Comparable接口的排序规则不适合当前的操作,那 么可以考虑使用 Comparator
的对象来排序,强行对多个对象进行整体排 序的比较。重写compare(Object o1,Object o2)方法,比较o1和o2的大小:如果方法返 回正整数,则表示o1大于o2;如果返回0,表示相等;返回负整数,表示 o1小于o2。可以将 Comparator 传递给 sort 方法(如 Collections.sort 或 Arrays.sort), 从而允许在排序顺序上实现精确控制。还可以使用 Comparator 来控制某些数据结构(如有序 set或有序映射)的 顺序,或者为那些没有自然顺序的对象 collection 提供排序。



