題目如下:
string str = " i am a programmer";其中空格個數分別是1,2,3個
要求按照單詞反轉,也就是最後輸出「programmer a am i"; 空格數分別為3,2,1。
1:用split函式方式:
public static void reverse() result += eg[0]; // 這裡要注意第乙個字元的前面是不能增加空格的。否則就多了乙個空格 system.out.println(result); }
這裡一直有乙個模糊點,就是如果對於連續多個空格在一起,但是要求分割的時候只用乙個空格,其它的空格還不能刪除,到底怎麼辦?需要看看split函式是怎麼處理的。為了可視,將空格換作」,「。
string oldstr = "z,,,z"; string strs = oldstr.split(","); for(string str:strs)
可以改變字串之間的」,「的個數來檢視,從執行結果可以看到,在分割字串」z,,,z「時,首先把字串分為」z「和」,,z「兩個字串,第二步操作字串」,,z「,分為乙個空字串和」,z「字串,繼續分為乙個空字串和乙個z,最後結果如下: z
z
2:不用split函式:
string oldstr="i am a programmer"; int index = oldstr.lastindexof(" "); system.out.println(index); while (index >= 0) system.out.println(oldstr);
為了能清楚的看到執行結果,我們把空格換為「,」。
string oldstr="i,am,,a,,,programmer"; int index = oldstr.lastindexof(","); while (index >= 0)
這樣的話,裡面有兩點如果不清楚的話就會導致不理解,首先substring(index)方法,是值從第index個字元開始往後的字串。第二substring(0,index)的字串不包括index位的字元。
這兩種方法總算是搞明白了。
String字串反轉
列印結果 反轉前 123456789 反轉後 987654321stringbuilder,或stringbuffer的reverse test public void reversetest 字串轉換字元陣列,倒序輸出資料 test public void reversetest2 system....
String 反轉單詞順序VS左旋字串
題目一 反轉單詞順序 string.split string regex 根據給定正規表示式的匹配拆分此字串。該方法的作用就像是使用給定的表示式和限制引數 0 來呼叫兩引數 split 方法。因此,所得陣列中不包括結尾空字串。例如,字串 boo and foo 使用這些表示式可生成以下結果 rege...
字串反轉
據說一道微軟的面試題,要求考慮時間和空間的優化,下面給出幾種通常字串反轉的方法 1 直接陣列操作 char strreverse char str return str 這種做法原來的str沒有儲存,原來的str也改變了 2 指標操作 char strreverse char str return ...