CS學生在這裏。我想編寫一個程序來解壓縮一個已經根據修改後的遊程編碼形式(我已經編寫代碼)編碼的字符串。例如,如果一個字符串包含'bba10',它將解壓縮爲'bbaaaaaaaaaa'。如何讓程序識別字符串('10')的一部分是整數?遊程長度解壓縮
感謝您的閱讀!
CS學生在這裏。我想編寫一個程序來解壓縮一個已經根據修改後的遊程編碼形式(我已經編寫代碼)編碼的字符串。例如,如果一個字符串包含'bba10',它將解壓縮爲'bbaaaaaaaaaa'。如何讓程序識別字符串('10')的一部分是整數?遊程長度解壓縮
感謝您的閱讀!
假設你沒有問解析,你可以像「10」字符串轉換成這樣一個整數:
int i = Integer.parseInt("10");
一位CS的學生在談論解壓,我確定知道如何解析一個字符串到一個整數 – Cruncher
一個簡單的正則表達式會做。
final Matcher m = Pattern.compile("(\\D)(\\d+)").matcher(input);
final StringBuffer b = new StringBuffer();
while (m.find())
m.appendReplacement(b, replicate(m.group(1), Integer.parseInt(m.group(2))));
m.appendTail(b);
其中replicate
是
String replicate(String s, int count) {
final StringBuilder b = new StringBuilder(count);
for (int i = 0; i < count; i++) b.append(s);
return b.toString();
}
我想你可以把在數字,而不是數字符號字符。
當你發現一個數字一個(> 0和< 9)你看看旁邊,然後選擇放大你數(當前* 10 +新)或擴充字符串
假設未壓縮的數據不從不包含數字:迭代字符串,逐個字符直到獲得數字。然後繼續,直到你有一個非數字(或字符串結尾)。數字插圖中可以被解析到一個整數別人已經說過:
int count = Integer.parseInt(str.substring(start, end));
詢問是誰寫的壓縮機:) – fvu
更有趣的問題是,你將如何從那裏字符串中包含字面的字符大小寫區分這紈絝子弟'10' – Henry
如果除了那些字符串中沒有數字,那很容易 – MightyPork