日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java實現單詞倒序輸出

瀏覽:140日期:2022-08-26 17:29:35

如何將一段單詞倒序輸出?把“Hello Java Hello China”變成“China Hello Java Hello”?

看起來好像很簡單,只需要把字符串先分割成單詞,然后加入一個StringBuilder或者StringBuffer中,最后再使用toString方法即可,現在來實現一下:

/** * @author Frank * @create 2017/11/24 * @description */public class Test { public static void main(String[] args) { String src = 'http://m.b3g6.com/bcjs/Hello Java Hello China';//需要處理的字符串 String[] arr = src.split(' ');//按空格分割 int length = arr.length;//計算數組長度 StringBuilder sb = new StringBuilder(src.length());//新建一個StringBuilder對象 for (int i=length-1;i>=1;i--){sb.append(arr[i]+' ');//將字符串依次加入StringBuilder中 } sb.append(arr[0]);//最后一個單詞不加空格 System.out.println(sb.toString());//輸出 }}

China Hello Java Hello

好的,現在就完美的解決了問題。

但事實上,通常并不是全用空格分隔開來的,而是有逗號,句號,引號等,那么這該如何處理呢?

那就只能一個字符一個字符判斷了,用charAt()來判斷字符是否為逗號句號或者引號,空格,如果是的話就知道到了分隔點了,如果不是的話就加入一個臨時的StringBuilder對象,代碼如下:

/** * @author Frank * @create 2017/11/24 * @description */public class Test2 { public static void main(String[] args) { String src = 'http://m.b3g6.com/bcjs/Hello Java,Hello China.';//需要處理的字符串 StringBuilder tmp = new StringBuilder(20);//定義一個StringBuilder對象 StringBuilder goal = new StringBuilder(src.length());//定義一個StringBuilder對象來存放最終要輸出的信息 char c;//定義一個字符變量 for (int i=src.length()-1;i>=0;i--){ c = src.charAt(i);//從后往前取字符 if(c ==’ ’ || c == ’,’ || c == ’.’){//判斷是否為分隔字符goal.append(tmp);//如果是的話就把tmp加入到goal中來goal.append(c);//在把分隔字符也一起加入tmp.delete(0,tmp.length());//清空tmp }else {tmp.insert(0,c);//如果不是分隔字符,說明單詞未完整,繼續加入tmp中 } } if (!tmp.equals('')){ goal.append(tmp);//如果tmp中還有內容,在添加到goal中 } System.out.println(goal.toString());//輸出 }}

輸出如下:

.China Hello,Java Hello

好像沒什么問題了。

現在難度進一步升級,如果有一個20M的字符串,“Hello_,_China_..._Bye.”(...代表中間省略的部分),單詞之間用空格隔開,現在需要把所有單詞全部顛倒順序,要求效率不能太低。不看這個20M的話,好像沒什么難度,關鍵就在于這個20M,肯定不能像第一種方式用split分割,那樣的話會創建一個很大的字符串數組,浪費很多空間。

所以這里采用第二種方式。

我們先隨機生成一個字符串,然后再使用第二種方式進行處理:

/** * @author Frank * @create 2017/11/24 * @description */public class Test3 { public static void main(String[] args) { long time = 0; StringBuilder sb = new StringBuilder(); //先生成一個比較大的字符串 for (int i=0;i<10000000;i++){ sb.append(i+' '); } System.out.println('字符串長度:'+sb.length()); //開始計算時間 time = System.currentTimeMillis(); StringBuilder tmp = new StringBuilder(20);//定義一個StringBuilder對象存放臨時數據 StringBuilder goal = new StringBuilder(sb.length());//定義一個StringBuilder對象來存放最終要輸出的信息 char c;//定義一個字符變量 for (int i=sb.length()-1;i>=0;i--){ c = sb.charAt(i);//從后往前取字符 if(c ==’ ’){//判斷是否為分隔字符goal.append(tmp);//如果是的話就把tmp加入到goal中來goal.append(c);//在把分隔字符也一起加入tmp.delete(0,tmp.length());//清空tmp }else {tmp.insert(0,c);//如果不是分隔字符,說明單詞未完整,繼續加入tmp中 } } if (!tmp.equals('')){ goal.append(tmp);//如果tmp中還有內容,在添加到goal中 } System.out.println(System.currentTimeMillis()-time);//輸出運行時間 }}

輸出如下:

字符串長度:78888890608

608毫秒,速度還ok,生成字符串還是要花挺多時間的,因為一直要進行內存復制,如果在循環次數后再加一個0,就會內存不足了。。。。

Exception in thread 'main' java.lang.OutOfMemoryError: Java heap spaceat java.util.Arrays.copyOf(Arrays.java:3332)at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448)at java.lang.StringBuilder.append(StringBuilder.java:136)at com.frank.string.test1.Test3.main(Test3.java:14)

至此,本篇問題討論完畢,如果有更好更快的方法,歡迎留言交流討論。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品一区二区99| 欧美成人精品| 视频在线观看一区二区三区| 欧美粗暴jizz性欧美20| 久久久久99| 精品伊人久久| 精品一区二区三区中文字幕| 久久精品色播| 国产不卡一区| 女生影院久久| 99久久久久国产精品| 欧美日韩少妇| 亚洲一级淫片| 日韩成人精品一区二区三区| 日本va欧美va精品发布| 欧美午夜三级| 久久久国产精品入口麻豆| 久久中文欧美| 美女网站视频一区| 亚洲欧美激情诱惑| 亚洲色图网站| 国产日韩一区二区三区在线播放| 麻豆国产精品777777在线| 天堂√中文最新版在线| 五月天久久久| 日本成人手机在线| 精品国产欧美日韩| 久久国产小视频| 自拍自偷一区二区三区| 国产免费av一区二区三区| 国产91欧美| 麻豆精品91| 国产精品久久久网站| 日韩伦理在线一区| 丝袜国产日韩另类美女| 日韩综合一区二区| 粉嫩av一区二区三区四区五区 | 日韩二区在线观看| 国产精品18| 日韩免费高清| 99精品99| 国产精品一区二区三区www | 国产视频一区二| 亚洲日本网址| 蜜桃视频一区二区三区| 国产精品亚洲欧美日韩一区在线 | 久久高清免费观看| 国产精品www994| 日韩精品2区| 亚洲影院天堂中文av色| 美女尤物国产一区| 久久青草久久| 天海翼亚洲一区二区三区| 欧美日本不卡| 亚洲精品一区三区三区在线观看| 日韩欧美1区| 国产亚洲在线| 成人在线超碰| 蜜臀国产一区| 欧洲av一区二区| 欧美69视频| 婷婷激情综合| 欧美在线亚洲综合一区| 久久伊人亚洲| 电影91久久久| 国产一区久久| 日本精品在线中文字幕| 亚洲综合丁香| 视频一区中文字幕| 亚洲精品在线a| 日韩成人高清| 97视频热人人精品免费| 美女久久久久久 | 欧美另类中文字幕| 99成人在线视频| 老牛影视一区二区三区| 丝袜脚交一区二区| 激情欧美国产欧美| 亚洲自啪免费| 久久一区视频| 久久精品人人| 国产福利片在线观看| 国产精品99一区二区三| 久久国产电影| 麻豆精品av| 亚洲综合色婷婷在线观看| 日本aⅴ免费视频一区二区三区| 免费日韩av| 免费视频一区二区三区在线观看 | 高清一区二区三区av| 视频在线在亚洲| 精品日韩视频| 国产一区二区三区网| 日韩国产精品久久久| 国产精品久久久久久久免费观看| 亚洲精品日本| 91超碰国产精品| 精品国产一级| 欧美久久亚洲| 一级欧美视频| 日韩午夜电影| 日本韩国欧美超级黄在线观看| 国产精品久久久久久久久久妞妞| 视频一区欧美精品| 四虎4545www国产精品 | 国产色99精品9i| 蜜桃视频一区二区| 婷婷色综合网| 欧美日韩视频网站| 国产精品第一| 欧美一级二区| 蜜桃视频在线观看一区二区| 亚洲特级毛片| 国产自产自拍视频在线观看| 国产美女精品视频免费播放软件| 中文字幕中文字幕精品| 在线亚洲激情| 午夜久久影院| 欧美 日韩 国产精品免费观看| 国产精品mm| 欧美日本精品| 欧美欧美黄在线二区| 日韩欧美久久| 日韩欧美高清一区二区三区| 亚洲理论在线| 一区二区不卡| 婷婷综合成人| 亚洲人妖在线| 中文字幕视频精品一区二区三区| 日韩一区二区久久| 好看不卡的中文字幕| 成人羞羞视频播放网站| 丝袜美腿一区| 99精品视频在线| 天堂av在线| 国产91精品对白在线播放| av高清一区| 国内激情久久| 99国产精品自拍| 蜜臀久久久99精品久久久久久| 蜜臀精品久久久久久蜜臀| 亚洲精品精选| 日本在线不卡视频一二三区| 日韩综合小视频| 欧美精品观看| 精品亚洲成人| 水蜜桃精品av一区二区| 丁香六月综合| 欧美日韩精品在线一区| 日韩在线看片| 亚洲国产专区| 蜜桃伊人久久| 日韩一区二区三区精品视频第3页| 日本伊人午夜精品| 久久国产三级| 精品国产亚洲日本| 精品捆绑调教一区二区三区| 99精品美女| 水蜜桃久久夜色精品一区的特点| 日韩久久99| 免费亚洲一区| 国产亚洲一区二区手机在线观看| 日韩一级网站| 青草综合视频| 国产精品手机在线播放| 国产一区2区在线观看| 视频小说一区二区| 久久不射中文字幕| 国产日韩欧美一区| 国产精品不卡| 香蕉久久精品| 深夜福利一区| 卡一卡二国产精品| re久久精品视频| 日韩精品一页| 在线天堂资源www在线污| 亚洲精品中文字幕乱码| 最新亚洲国产| 国产一区二区三区亚洲| 久久影院一区| 欧美亚洲一区二区三区| 韩国久久久久久| 男女性色大片免费观看一区二区| 国产欧美丝祙| 99久精品视频在线观看视频| 中文字幕av一区二区三区人| 免费看久久久| 欧美日韩国产综合网| 国产欧美日韩精品高清二区综合区| 日韩av二区| 久热精品在线| 久久精品女人| 男人的天堂亚洲一区| 国产精品麻豆久久| 一区在线免费| 欧美国产先锋| 国产亚洲精品v| 久久中文字幕一区二区三区| 欧美另类综合| 精品久久久久中文字幕小说|