當前位置:編程學習大全網 - 編程語言 - 求大神為小弟解答!!!用java編程!謝謝

求大神為小弟解答!!!用java編程!謝謝

public static void main() {

String s = "sunjavaandandroidjavajavajavaeejavamejavase#java.netjavaphpjava";

StringBuilder sb = new StringBuilder();

int middle = s.length() / 2;// 中間位置

// Map用來統計詞頻,這只是壹種方法;既然提供了集合,我們就用用咯

Map<Character, Integer> map = new HashMap<Character, Integer>();

for (int k = s.length() - 1; k > middle; --k) {// 後半部分

char c = s.charAt(k);// 當前字符

if (map.get(c) != null) {// map中有,表示出現過,次數+1

map.put(c, map.get(c) + 1);

} else {// 沒出現過,次數初始化為1

map.put(c, 1);

}

if (c >= 'a' && c <= 'z')// 小寫轉化為大寫(char內部的int值大小寫差32)

c = (char) (c - 32);

/**

* 其實大小寫轉換可以使用String類的toUpperCase(),我是為了壹個循環搞定,所以沒用。

*/

sb.append(c);

}

for (int i = middle; i >= 0; --i) {// 前半部分,反序輸出到sb

char c = s.charAt(i);

sb.append(c);

if (map.get(c) != null) {

map.put(c, map.get(c) + 1);

} else {

map.put(c, 1);

}

}

System.out.println("逆序變大寫結果:" + sb.toString());

System.out.println("====下面是統計數據=========");

Set<Character> keys = map.keySet();// 循環map的壹種方法————獲取key的Set集合(另壹種獲取Map.Entry集合,自行研究)

Iterator<Character> item = keys.iterator();//叠代器

while (item.hasNext()) {

Character cc = item.next();

System.out.println("字符" + cc + "出現次數:" + map.get(cc));

}

// 以下為第壹題答案(為了方便,寫壹起去了)

Pattern p = Pattern.compile("java");

Matcher matcher = p.matcher(s);

boolean result = matcher.find();

int count = 0;

while (result) {

count++;

result = matcher.find();

}

System.out.println("'java'出現次數: " + count);

System.out.println(s.replaceAll("java", "JAVA"));

}

//這格式不太對,妳用IDE格式化壹下代碼就行了

  • 上一篇:都說奧數題能提高數學成績,真的有這樣的作用嗎?
  • 下一篇:有兩個矩陣a和b,均為2行3列。求兩個矩陣之和。重載運算符“+”,使之能用於矩陣相加。如:c=a+b.
  • copyright 2024編程學習大全網