JavaSE —— 字符串、大數與數組

字符串、大數與數組

1. 字符串

1.1 字符串拼接

  1. 任何一個字符串與一個非字符串的值拼接起來絮姆,非字符串會轉化成字符串
int age = 11;
String value = "my age:" + age; 

// value的值為字符串"my age:13"

1.2 字符串部分方法

  1. int compareTo(String other)
  • 字符串前面部分的每個字符完全一樣,返回后面兩個字符串長度差
  • 字符串前面部分的每個字符存在不一樣秩霍,返回出現不一樣的字符 ASCII 碼的差值
  • 字符串的每個字符完全一樣篙悯,返回 0
  1. boolean isBlank():如果字符串為空(不能為 null )或者是空字符串或者存在空格,返回true铃绒,該方法是 Java 11 新增的

  2. boolean isEmpty():如果字符串為空(不能為 null )或者是空字符串鸽照,返回 true

  3. boolean strip():去除字符串前后的全角和半角空白字符,該方法是 Java 11 新增的

    boolean trim():去除字符串前后的半角空白字符

  4. String join(CharSequence delimiter, CharSequence ... elements):返回一個新的字符串颠悬,用給定的字符串連接所有的元素

    String value = String.join("|", "hello", "world", "hhh");
    
    // value的值為"hello|world|hhh"
    
  5. String repeat(int count):返回一個字符串矮燎,將當前的字符串重復 count 次飞几,該方法是 Java 11 新增的

    String value = "hello".repeat(3);
    
    // value的值為"hellohellohello"
    

1.3 StringBuilder 類和 StringBuffer 類

StringBuilder 類是 Java 5 中引入的舞虱,這個類的前身是 StringBuffer 類,StringBuilder 類的效率優(yōu)于 StringBuffer 府蔗,因為 StringBuffer 類采用多線程的方式操作字符串灾票,但是 StringBuilder 類采用單線程的方式操作字符串峡谊,因而 StringBuffer 類是一個線程安全的類,但是 StringBuilder 類不是一個線程安全的類

  • 如果要操作少量數據,使用 String 即可
  • 如果要快速操作大量數據既们,但是線程安全不需要考慮濒析,使用 StringBuilder
  • 如果要保證線程安全的前提下操作大量數據,使用 StringBuffer

2. 大數

2.1 BigInteger 類和 BigDecimal 類

可以使用 valueof() 方法或者字符串的形式實例化 BigInteger 和 BigDecimal 類

BigInteger value = BigInteger.valueof(100);

BigInteger value = new BigInteger("4123523793279382031471423648919141");

BigDecimal value = BigDecimal.valueof(100.891);

BigDecimal value = new BigDecimal("5414325134.5352442314");

2.2 常用方法

  • BigInteger add(BigInteger other) / BigDecimal add(BigDecimal other) :加法
  • BigInteger subtract(BigInteger other) / BigDecimal subtract(BigDecimal other):減法
  • BigInteger multiply(BigInteger other) / BigDecimal multiply(BigDecimal other):乘法
  • BigInteger divide(BigInteger other) / BigDecimal divide(BigDecimal other):除法
  • BigDecimal divide(BigDecimal other, RoundingMode mode):如果除不盡啥纸,要想得到結果悼枢,可以使用RoundingMode 類中的常量
  • RoundingMode.CEILING:取右邊最近的整數
  • RoundingMode.DOWN:去掉小數部分取整,也就是正數取左邊脾拆,負數取右邊馒索,相當于向原點靠近的方向取整
  • RoundingMode.FLOOR:取左邊最近的正數
  • RoundingMode.HALF_DOWN:五舍六入,負數先取絕對值再五舍六入再負
  • RoundingMode.HALF_UP:四舍五入名船,負數原理同上
  • RoundingMode.HALF_EVEN:這個比較繞绰上,整數位若是奇數則四舍五入,若是偶數則五舍六入
  • BigInteger mod(BigInteger other):取模
  • BigInteger sqrt():取平方根(Java 9 新增
  • int compareTo(BigInteger other) / int compareTo(BigDecimal other):兩個大數比較渠驼,如果相等蜈块,返回 0,如果小于 other迷扇,返回負數百揭,如果大于 other,返回正數
  • static BigInteger valueof(long x) / static BigDecimal valueof(long x):得到一個等于 x 的大實數
  • static BigDecimal valueof(long x, int scale):得到一個等于 x / 10 ^ scale 的大實數

2.3 相關常量

BigInteger.ZERO蜓席, BigInteger.ONE器一,BigInteger.TEN,BigInteger.TWO(Java 9 新增

3. 數組

3.1 Arrays類常用方法

  1. static xxx[] copyOf(xxx[] a, int end) / static xxx[] copyOfRange(xxx[] a, int start, int end):返回與 a 類型相同的一個數組厨内,其長度為 length 或者為 end - start祈秕,數組元素為 a 的值,如果 end 大于 a.length雏胃,結果會填充 0 或 false 值

  2. static void sort(xxx[] a):使用快速排序算法對數組進行排序

  3. static int binarySearch(xxx[] a, xxx v) / static int binarySearch(xxx[] a, int start, int end, xxx v):使用二分查找在有序數組 a 中查找值 v请毛,如果找到,則返回相應的下標瞭亮,否則方仿,返回一個負數 r,-r - 1 是值 v 應該插入的位置(為保持 a 有序)

  4. static void fill(xxx[] a, xxx v):將數組所有元素設置為 v

  5. static boolean equals(xxx[] a, xxx[] b):如果兩個數組大小相同统翩,并且下標相同的元素都對應相等仙蚜,則返回 true

  6. static String deepToString(Object[] a):將多維數組打印出來

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市唆缴,隨后出現的幾起案子鳍征,更是在濱河造成了極大的恐慌,老刑警劉巖面徽,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艳丛,死亡現場離奇詭異匣掸,居然都是意外死亡,警方通過查閱死者的電腦和手機氮双,發(fā)現死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門碰酝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人戴差,你說我怎么就攤上這事送爸。” “怎么了暖释?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵袭厂,是天一觀的道長。 經常有香客問我球匕,道長纹磺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任亮曹,我火速辦了婚禮橄杨,結果婚禮上,老公的妹妹穿的比我還像新娘照卦。我一直安慰自己式矫,他們只是感情好,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布役耕。 她就那樣靜靜地躺著采转,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蹄葱。 梳的紋絲不亂的頭發(fā)上氏义,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天锄列,我揣著相機與錄音图云,去河邊找鬼。 笑死邻邮,一個胖子當著我的面吹牛竣况,可吹牛的內容都是我干的。 我是一名探鬼主播筒严,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼丹泉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鸭蛙?” 一聲冷哼從身側響起摹恨,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎娶视,沒想到半個月后晒哄,有當地人在樹林里發(fā)現了一具尸體睁宰,經...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年寝凌,在試婚紗的時候發(fā)現自己被綠了柒傻。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡较木,死狀恐怖红符,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情伐债,我是刑警寧澤预侯,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站峰锁,受9級特大地震影響雌桑,放射性物質發(fā)生泄漏。R本人自食惡果不足惜祖今,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一校坑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧千诬,春花似錦耍目、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至傲茄,卻和暖如春毅访,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盘榨。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工喻粹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人草巡。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓守呜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親山憨。 傳聞我的和親對象是個殘疾皇子查乒,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內容