62,621
社区成员
发帖
与我相关
我的任务
分享public class Demo {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("no args.");
}
}
}像楼主的代码层级多,又没有排版,没法看。
import java.util.Comparator;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class TestString {
public static void main(String...args) {
String str = " aaabbbc ccccddd ";
TestString t = new TestString();
System.out.println(t.getChar(str));
System.out.println(t.getMax(str));
System.out.println(t.reverse(str));
System.out.println(t.arrange(str));
System.out.println(t.joinAndTrim(str));
}
private Stream<Character> getStream(String str) {
return str.chars().mapToObj(ch -> Character.valueOf((char) ch));
}
private Stream<Character> getUpperStream(String str) {
return str.trim().toUpperCase().chars().mapToObj(ch -> Character.valueOf((char) ch));
}
private Map.Entry<Character, Long> getEntry(String str) {
return getUpperStream(str)
.collect(Collectors.groupingBy(a -> a, Collectors.counting()))
.entrySet().stream().max(Comparator.comparing(Map.Entry::getValue)).get();
}
//得到最频繁出现的字符
public char getChar(String str) {
return getEntry(str).getKey();
}
//得到最频繁出现的字符出现次数
public long getMax(String str) {
return getEntry(str).getValue();
}
//反转字符串
public String reverse(String str) {
return new StringBuilder(str).reverse().toString();
}
//将该字符串按字符顺序归类,即相同字符放在一起,得到新字符串,应区分大小写,空格等。
public String arrange(String str) {
return getStream(str).sorted().collect(StringBuffer::new, StringBuffer::append, (s, t) -> s.append(t.toString())).toString();
}
//将归类和反转后的字符串和原来的字符串全部连接,并将所有空格去除
public String joinAndTrim(String str) {
return (arrange(str) + reverse(str) + str).trim();
}
}
package com.zzp.demo;
import java.util.HashMap;
import java.util.Map;
public class Test {
public static void main(String[] args) {
String s = "aaabbbcccccddd";
System.out.println(frequent(s));
}
/**
* 记录每个字符出现次数
* @param str
* @return
*/
public static Map<Character, Integer> frequent(String str) {
Map<Character, Integer> retMap = new HashMap<Character, Integer>();
for (int i = 0; i < str.length(); i++) {
Character c = str.charAt(i);
if (retMap.get(c) != null) {
Integer newValue = retMap.get(c) + 1;
retMap.put(c, newValue);
}else{
retMap.put(c,1);
}
}
return retMap;
}
}