国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java字符串拼接技巧(StringBuilder使用技巧)

2019-11-14 15:29:38
字體:
來源:轉載
供稿:網友

在平時的開發中,我們可能會遇到需要拼接如下格式的字符串(至少我是遇到了很多次):

1,2,3,4,5,6,7,8,9,10,11,12,12,12,12,34,234,2134,1234,1324,1234,123

這個字符串的特點:多個數據之間通過某一個特殊符號分割。

以前我都是這樣想的,我相信很多的people也是這樣想的:

public class StringTest{    public static void main(String[] args)    {        StringBuilder sb = new StringBuilder();        for (int i = 0; i <= 10; i++)        {      //以下這個判斷對于有強迫癥的人來說確實有點不爽,每次循環進來都要進行判斷以下,如果循環的次數很多呢,我們都會想到會不會對性能有影響呢?            if (i != 0)            {                sb.append(",");            }            sb.append(i);        }        System.out.PRintln(sb.toString());    }}

看到這里,你平時的做法是不是也是這樣的,每一次循環中都存在這樣一個判斷,如果是回答是肯定的,那么你就有必要繼續往下看了,因為以上的方式確實不怎么明智。(至少對于我這個強迫癥&&追求完美的人來說,這樣的代碼讓我很不爽)。

 

在這里不會有人要反駁的代碼,要我用"+"來拼接字符串吧,如果你真是這樣想的,Oh My God!!!

 

我在這里提供兩種我知道的方式去解決這種現象問題:

方法一:首先取出集合的第一個元素,通過StringBuilder的構造方法,傳入第一個元素,這樣是不是后面的每一次循環就不需要判斷了啊?

public class StringTest{    public static void main(String[] args)    {        StringBuilder sb = new StringBuilder("0");        for (int i = 1; i <= 10; i++)        {            sb.append(",");            sb.append(i);        }        System.out.println(sb.toString());    }}

很多小伙伴想到了上面的方式是通過技巧(java api的掌握熟練程度)將第一個特殊的元素取出來,特殊處理,后面的是不是每一個元素都有規律了,都是以一個字符加上一個數據。想到這里,你有沒有想到點其他的?

 

作為一個程序員我們就應該練就一身舉一反三的本領,上面的方式既然能夠將第一個元素作為特殊的數據單獨提取出來,那么有沒有辦法將最后的一個數據也作為特殊數據單獨提取出來,前面的其他數據不是就有規律可循了嗎?

 

所以下面就引出了我的第二種解決辦法(《Java編程思想第四版》P286)

方式二:很多人都熟悉StringBuilder的append();方法,但是很多人卻不知道StringBuilder的delete(int startPost,int endPost);如果你有舉一反三的學習習慣,那么很容易就會掌握到這個api接口。其實在java的api中很多都是相對的,通過這種方式去學習,很快你就會發現自己知道的就很多。 

public class StringTest{    public static void main(String[] args)    {        StringBuilder sb = new StringBuilder();        for (int i = 0; i <= 10; i++)        {            sb.append(i);            sb.append(",");        }        sb.delete(sb.length() - 1, sb.length());//這里就看你知不知道這個api接口了        System.out.println(sb.toString());    }}

  

以上只是我針對這一個小的知識點的技巧告訴大家,在學習中應該多學會舉一反三,掌握學習方法是你學好編程的一條捷徑。歡迎大家有更好的學習方法,學習技巧,知識點技巧與我共同討論與分享。

 

轉載請注明出處:http://m.survivalescaperooms.com/liushaofeng89/p/4865263.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 拉萨市| 龙江县| 黄梅县| 澜沧| 顺平县| 锡林郭勒盟| 县级市| 娄底市| 澄江县| 漳平市| 抚顺县| 石楼县| 锡林浩特市| 黎川县| 富阳市| 衢州市| 大新县| 太和县| 青河县| 固始县| 文安县| 宣恩县| 昔阳县| 黄骅市| 深水埗区| 临海市| 吕梁市| 满洲里市| 平顶山市| 淮南市| 敦煌市| 屏山县| 大渡口区| 玉溪市| 鸡西市| 正阳县| 惠水县| 宁安市| 五莲县| 垫江县| 浠水县|