字串獲取字元個數,並根據個數和ASCII排序

2021-10-05 09:22:32 字數 1619 閱讀 1626

題目: 隨機輸入一串字元,請按照字串中字元的頻率和ascii排序。

例如:輸入:ababccc   輸出:cccaabb

輸入:tree  輸出:eert

輸入:abbacccddddyyy 輸出:ddddcccyyyaabb

解題思路:字串中獲取單個字元的個數,根據個數從大到小降序排列,如果個數相同則根據ascii碼來排序:

首先,需要記錄每個字元的個數,其次要根據個數排序從大到小降序排列,判斷個數相同再根據ascii碼排序;

知識點:1. 正則記錄個數,或者迴圈記錄每個字元的個數;

2.然後排序,先根據個數排序(排序的方法 android中collections.sort可以對物件排序)

3.ascii碼的獲取,string.tochararray()獲取單個字元; char型別可以直接轉換為int, int型別就是字元的ascii

private static void getsortstr1() else 

}if(!isequal)}}

//頻率排序

string strpx = mapnum.keyset().toarray(new string[0]);

for (int i = 0; i < strpx.length - 1; i++) else if (value_i == value_j) }}

}stringbuffer sb = new stringbuffer();

for (int i = 0; i < strpx.length; i++)

}system.out.println(sb.tostring());

}

private  void getsortstr2()

strbean.setnum(num);

strbean.setascii(c);

strbean.setword(character.tostring(c));

strbeans.add(strbean);

}//根據num來排序,相等則用ascii排序,否則用num排序

collections.sort(strbeans, new comparator()

return t2.num - t1.num;

}});

//構造排序串

stringbuffer sb = new stringbuffer();

for (strbean strbean:strbeans)

string result = sb.tostring();

log.i("tag", "jisuan2: " + result);

}class strbean

public void setword(string word)

public void setascii(int ascii)

public integer getnum()

public string getword()

public integer getascii()

@override

public string tostring()

}

Go語言獲取字串元素的個數

1 獲取字串位元組的個數,並按位元組挨個輸出 var str string abc張鑫 32位電腦上,共9個位元組 charray byte str 轉換為byte 乙個位元組對應乙個陣列元素 fmt.println len charray 獲取元素的個數,結果為9 for v range char...

獲取字串

package cn.itcast.day08.demo02 public int length 獲取字串當中含有的字元個數,拿到字串長度。public string concat string str 將當前字串和引數字串拼接成為返回值新的字串。public char charat int ind...

SQL 根據表獲取字段字串

sqlserver查詢單個資料表所有欄位名組合成的字串指令碼 sqlserver查詢單個資料表所有欄位名組合成的字串指令碼 應用場合 用於生成sql查詢字串中select 欄位名列表1 from table group by 欄位名列表2 中的欄位名列表1和欄位名列表2部分 定義資料表名稱變數 de...