Java中實(shí)現(xiàn)String.padLeft和String.padRight的示例
因?yàn)榱?xí)慣了C#中的padLeft和padRight,接觸Java后突然失去這兩個(gè)功能,覺(jué)得別扭,就試著實(shí)現(xiàn)了這兩個(gè)方法。
Java中String.format()中帶有字符串對(duì)齊功能如下:
System.out.println(String.format("*%1$-10s*", "moon")); System.out.println(String.format("*%1$10s*", "moon"));
輸出:
以上方法經(jīng)過(guò)簡(jiǎn)單的變換可以得到:
public static String padWhitespaceLeft(String s, int len) { return String.format("%1$" + len + "s", s); } public static String padWhitespaceRight(String s, int len) { return String.format("%1$-" + len + "s", s); }
調(diào)用下面方法:
System.out.println("*" + padWhitespaceLeft("moon", 12) + "*"); System.out.println("*" + padWhitespaceRight("moon", 12) + "*");
可以得到結(jié)果:
以上只是介紹左右對(duì)齊時(shí),補(bǔ)空白符的方法,但是在實(shí)際開(kāi)發(fā)過(guò)程中,單純的補(bǔ)空白符也許滿足不了開(kāi)發(fā)要求,為此我還要做一次強(qiáng)化改進(jìn):
/** * @作者 堯 * @功能 String左對(duì)齊 */ public static String padLeft(String src, int len, char ch) { int diff = len - src.length(); if (diff <= 0) { return src; } char[] charr = new char[len]; System.arraycopy(src.toCharArray(), 0, charr, 0, src.length()); for (int i = src.length(); i < len; i++) { charr[i] = ch; } return new String(charr); } /** * @作者 堯 * @功能 String右對(duì)齊 */ public static String padRight(String src, int len, char ch) { int diff = len - src.length(); if (diff <= 0) { return src; } char[] charr = new char[len]; System.arraycopy(src.toCharArray(), 0, charr, diff, src.length()); for (int i = 0; i < diff; i++) { charr[i] = ch; } return new String(charr); }
調(diào)用方法如下:
System.out.println("*" + padLeft("moon", 12, '-') + "*"); System.out.println("*" + padRight("moon", 12, '-') + "*");
輸出結(jié)果:
這樣在Java中處理字符串對(duì)齊就可以像C#那樣簡(jiǎn)單了。
效率也是有保障的。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java中將String類(lèi)型依照某個(gè)字符分割成數(shù)組的方法
下面小編就為大家分享一篇Java中將String類(lèi)型依照某個(gè)字符分割成數(shù)組的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03Java中對(duì)list map根據(jù)map某個(gè)key值進(jìn)行排序的方法
今天小編就為大家分享一篇Java中對(duì)list map根據(jù)map某個(gè)key值進(jìn)行排序的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07深入了解JVM字節(jié)碼增強(qiáng)技術(shù)
這篇文章主要介紹了深入了解JVM字節(jié)碼增強(qiáng)技術(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11idea?springBoot項(xiàng)目自動(dòng)注入mapper為空?qǐng)?bào)錯(cuò)的解決方法
這篇文章主要介紹了idea?springBoot項(xiàng)目自動(dòng)注入mapper為空?qǐng)?bào)錯(cuò)的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03Spring Boot 使用WebAsyncTask異步返回結(jié)果
這篇文章主要介紹了Spring Boot 使用WebAsyncTask異步返回結(jié)果的相關(guān)資料,需要的朋友可以參考下2018-02-02