java笔记-1

1.4.6大数

import java.math.*;

BigInterger、BigDecimal;  任意长,任意精度

静态方法valueOf将long转换为BigInterger;用字符串构造BigInterger:

BigInterger n = BigInterger.valueOf(123456789012345678L);
BigInterger k = new BigInterger("123456789012345678");

java 不允许对象使用操作符,操作大数必须使用方法调用:

BigInterger r = BigInterger.valueOf(5).multiply(n,add(k)); //r=5*(n+k)

1.5 字符串

一系列字符,可包含任何Unicode:"Java\u263A"是"Java☺".

常用Unicode字符:\u2122 即™


1.5.1字符串连接

用加号“+”连接:

int age = 42;
String output = age + "years";
System.out.println("Next year,u will be " + age + 1);//Next year,u will be 421
System.out.println("Next year,u will be " + (age + 1));//Next year,u will be 43

几个字符串用分隔符隔开,用join方法:

扫描二维码关注公众号,回复: 1714506 查看本文章
String names = String.join(",","name1","name2","name3");//name设置为"name1,name2,name3"

字符串数组

大量字符串的连接用StringBuilder;

使用StringBuilder和StringBuffer来构造String

  1. StringBuilder和StringBuffer都是构造字符串的类,可以使用.append()来增加内容,最后使用toString()来得到String对象,适用于多次、频繁地构建、修改String的时候;
  2. 区别:多线程构造String的情况下应该使用StringBuffer

1.5.2 子字符串

substring(),第一个参数为起始位置,第二个为字符串不应包含字符起始位;即左闭右开区间;

split(),提出分隔符分割的字符串中所有子字符串,分隔符可以是正则表达式。


1.5.3 字符串比较

1.必须使用equal()方法来判断字符串相等;不能使用’\==’来判断两个String是否相等,这样判断的只是两个String对象是否存在同一位置;因为Java对字符串的实现类似char *,它的==判断只能判断是否存于同一内存地址 

2. 区别空串和NULL串 

equalsIgnoreCase(),不区分大小写比较

compareTo(),first在字典中排在second前返回负整数,后返回正整数,相等返回0

first.compareTo(second)//比较word和world时,因d在l前面,返回Unicode值之差,-8.


1.5.4 数字与字符串转换

Integer.toString(),第二个参数为转换指定基数。2~36

Integer.parseInt(),字符串转为整数;

Double.toString()

Double.parseDouble(),字符串转为数字,字符串需要用""


1.5.5  String类API

String类不可变,任何string方法都不能修改自己的字符串;


1.5.6 编码点code point和编码单元 code unit

每个有效的Unicode值称为编码点;

21个比特Unicode中,A的编码点U+0041;

UTF-16中A为\u0041


1.6 输入输出

1.6.1 读取输入

import java.util.*;

要读取字符串和数字,构造一个依附到System.in 的Scanner.

  1. nextLine();  从输入读取一行
  2. next();  读取单个单词
  3. nextInt();
  4. nextDouble();

可以检查是否有另外一行,一个单词、整数、浮点数可以读取:

hasNextLine()、hasNext()、hasNextInt()、hasNextDouble();

import java.util.Scanner;




猜你喜欢

转载自blog.csdn.net/u013119231/article/details/79968182