對字串中的所有單詞進行倒排
輸入一行以空格來分隔的句子
說明:輸出句子的逆序
edqwa3 4h$ km;k
k km h edqwa
方法一/* 思路:
* 1.獲取單詞,以非字母字元分割
* 2.倒序遍歷,存入新字串中
* * 占用記憶體:9436k
*/public
static
voidm1(
)throws ioexception )
for(
int i=sarr.length-
1;i>=
0;i--
) system.out.
println
(br.
tostring()
.trim()
);}
方法二/* 思路:
* 1.獲取單詞,將非字母字元替換為空格
* 2.以空格分割字串存入陣列
* 3.倒序遍歷,將不為空的字元存入新字串中
* * 占用記憶體:9448k
*/public
static
voidm2(
)throws ioexception
else}
string[
] sarr=sb.
tostring()
.trim()
.split
("\\s+");
stringbuffer sb2=
newstringbuffer()
;for
(int j=sarr.length-
1;j>=
0;j--)if
(j>0)
} system.out.
println
(sb2.
tostring()
);}
正規表示式
\s
-> 匹配任何1個空白字元(包括空格、製表符、換頁符……等價於->\f\n\r\t\v
)
\f
-> 匹配 1 個換頁符
\n
-> 匹配 1 個換行符
\r
-> 匹配 1 個回車符
\t
-> 匹配 1 個製表符
\v
-> 匹配 1 個垂直製表符
+
-> 匹配 1 個或多個()
?
-> 匹配 0 個或 1 個()
\
-> 轉義
\s+
-> 匹配任意多個上面的字元
[^a-za-z]
-> 匹配 1 個非字母
[^a-za-z]+
-> 匹配 1 個或多個非字母
^[a-za-z]
-> 匹配 1 個大小寫字母
^[a-za-z]+
-> 匹配 1 個或多個大小寫字母
(c>=『a』 && c<=『z』)||(c>=『a』 && c<=『z』)
等價於character.islowercase(c)||character.isuppercase(c)
->判斷是否為大小寫字母
\d
-> 匹配 1 個數字(判斷是否為數字 ->character.isdigit()
)
-?\d+
-> 匹配任意個正負數
scanner和bufferedreader相同
不同 努力做個總結
.當進行大量讀入操作,或者輸入的內容中間包括空格時,可以考慮使用bufferedreader
類取得輸入(scanner
對空格比較敏感)
程式設計題 中級 單詞倒排
程式設計題 中級 單詞倒排 對字串中的所有單詞進行倒排。說明 1 每個單詞是以26個大寫或小寫英文本母構成 2 非構成單詞的字元均視為單詞間隔符 3 要求倒排後的單詞間隔符以乙個空格表示 如果原字串中相鄰單詞間有多個間隔符時,倒排轉換後也只允許出現乙個空格間隔符 4 每個單詞最長20個字母 輸入描述...
華為 單詞倒排
對字串中的所有單詞進行倒排。說明 1 每個單詞是以26個大寫或小寫英文本母構成 2 非構成單詞的字元均視為單詞間隔符 3 要求倒排後的單詞間隔符以乙個空格表示 如果原字串中相鄰單詞間有多個間隔符時,倒排轉換後也只允許出現乙個空格間隔符 4 每個單詞最長20個字母 輸入一行以空格來分隔的句子輸出句子的...
28 單詞倒排
總時間限制 1000ms 記憶體限制 65536kb 描述編寫程式,讀入一行英文 只包含字母和空格,單詞間以單個空格分隔 將所有單詞的順序倒排並輸出,依然以單個空格分隔。輸入輸入為乙個字串 字串長度至多為100 輸出輸出為按要求排序後的字串。樣例輸入 i am a student 樣例輸出 stud...