java基础知识点13

trim()的作用是去掉字符串两端的多余的空格,注意,是两端的空格,且无论两端的空格有多少个都会去掉,当
中间的那些空格不会被去掉,如:
String s = "  a s f g      ";
String s1 = s.trim();
那么s1就是"a s f g",可见,这和上面所说的是一样的。
trim()不仅可以去掉空格,还能去掉其他一些多余的符号,这些符号分别是:
\t  \n  \v  \f  \r  \x0085  \x00a0  ?  \u2028  \u2029
翻译过来分别是:水平制表符,换行符,垂直制表符,换页符,回车,后面的这几个除了问号外,其他的都是转义符形式写法。

java的"\\s+"什么意思?
例如:String[] tt=addr.split("\\s+");
\\s ==\s 表示转义字符 ,\s表示匹配任意空格(包括空格,制表符,换页符)
\\s+中的'+'表示多次匹配

java.util.Set 接口 extends Collection接口
1、Set接口的特点:
(1)不允许存储重复的元素。
(2)没有索引,没有带索引的方法,也不能使用普通的for循环遍历。

2、java.util.HashSet集合 implements Set接口
HashSet特点:
(1)不允许存储重复的元素。
(2)没有索引,没有带索引的方法,也不能使用普通的for循环遍历。
(3)是一个无序的集合,存储元素和取出元素的顺序有可能不一致。
(4)底层是一个哈希表结构(查询的速度非常快)。

3、哈希值:是一个十进制的整数,由系统随机给出(就是对象的地址值,是一个逻辑地址,是模拟出来得到的地址,不是数据实际存储的物理地址)。
在Object类有一个方法,可以获取对象的哈希值。
int hashCode()返回该对象的哈希吗值。

4、Set集合在调用add方法的时候,add方法回调用元素的hashCode方法和equals方法,判断元素是否重复。

5、java.util.LinkedHashSet集合 extends HashSet集合
LinkedHashSet集合特点:底层是一个哈希表(数组+链表/红黑树)+链表:多了一条链表(记录元素的存储顺序),保证元素有序。有序,不允许重复。

next() 与 nextLine() 区别
next():
一定要读取到有效字符后才可以结束输入。
对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
next() 不能得到带有空格的字符串。

nextLine():
以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
可以获得空白。

通过 Scanner 类的 next()与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext与 hasNextLine判断是否还有输入的数据:
hasNext() 与 hasNextLine() 区别
hasNext():
1、输出为布尔值。
2、判断输入的缓存中是否有效字符,遇到空格结束。
3、如果只输入空格,不会匹配,返回false。

hasNextLine():
1、以Enter为结束符,判断此行有没有输入,空白输入也会返回true。
通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据:

system.out.println():打印完自动换行
system.out.print():打印完不换行

精确小数:java提供DecimalFormat类
double类默认输出小数点后六位
    double pi = 3.1415927; //圆周率
    //取一位整数
    System.out.println(new DecimalFormat("0").format(pi));   //3
    //取一位整数和两位小数
    System.out.println(new DecimalFormat("0.00").format(pi)); //3.14
    //取两位整数和三位小数,整数不足部分以0填补。
    System.out.println(new DecimalFormat("00.000").format(pi));// 03.142
    //取所有整数部分
    System.out.println(new DecimalFormat("#").format(pi));   //3
    //以百分比方式计数,并取两位小数
    System.out.println(new DecimalFormat("#.##%").format(pi)); //314.16%
     long c =299792458;  //光速
    //显示为科学计数法,并取五位小数
    System.out.println(new DecimalFormat("#.#####E0").format(c)); //2.99792E8
    //显示为两位整数的科学计数法,并取四位小数
    System.out.println(new DecimalFormat("00.####E0").format(c)); //29.9792E7
    //每三位以逗号进行分隔。
    System.out.println(new DecimalFormat(",###").format(c));   //299,792,458
    //将格式嵌入文本
    System.out.println(new DecimalFormat("光速大小为每秒,###米。").format(c));

圆周率:Math.PI

快捷判断一个数是否是素数:从2到sqrt(n)是否有数可以与其整除

 Arrays.asList方法是将数组转化成List集合的方法。
 List<String> list = Arrays.asList("a","b","c");
注意:
(1)该方法适用于对象型数据的数组(String、Integer...)
(2)该方法不建议使用于基本数据类型的数组(byte,short,int,long,float,double,boolean)
(3)该方法将数组与List列表链接起来:当更新其一个时,另一个自动更新
(4)不支持add()、remove()、clear()等方法

字符串转数组
使用Java split() 方法
split() 方法根据匹配给定的正则表达式来拆分字符串。
注意: . 、 | 和 * 等转义字符,必须得加 \\。多个分隔符,可以用 | 作为连字符。
// 字符串转数组  java.lang.String
String str = "0,1,2,3,4,5";
String[] arr = str.split(","); // 用,分割
System.out.println(Arrays.toString(arr)); // [0, 1, 2, 3, 4, 5]
 
数组转字符串
方法一: 遍历
String[] arr = { "0", "1", "2", "3", "4", "5" };
// 遍历
StringBuffer str5 = new StringBuffer();
for (String s : arr) {
    str5.append(s);}
System.out.println(str5.toString()); // 012345

方法二: 使用StringUtils的join方法
//数组转字符串 org.apache.commons.lang3.StringUtils(需导入新包)
String str3 = StringUtils.join(arr); // 数组转字符串,其实使用的也是遍历
System.out.println(str3); // 012345
String str4 = StringUtils.join(arr, ","); // 数组转字符串(逗号分隔)(推荐)
System.out.println(str4); // 0,1,2,3,4,5

方法三: 使用ArrayUtils的toString方法
// 数组转字符串 org.apache.commons.lang3.ArrayUtils
String str2 = ArrayUtils.toString(arr, ","); // 数组转字符串(逗号分隔,首尾加大括号)
System.out.println(str2); // {0,1,2,3,4,5}

方法四:字符串数组(或列表)转字符串
String.join(“”,)

遍历字符串
// 方法一
for(int i=0;i < str.length();i++) {
     System.out.println(str.charAt(i)); }

//方法二
for(int i=0;i < str.length();i++) {
     System.out.println(str.substring(i,i+1)); }

//方法三
char[]  c = str.toCharArray();
for(int i=0;i < c.length;i++) {
    System.out.println(c[i]);}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值