1. Статистика Количество струнных букв (и сохраняет алфавитный заказ)
Например: AABBBBBBBBA OH BCAB CDABC DEAAA
Я знаю 5 способов. Если у вас есть лучшие, пожалуйста, дайте мне несколько советов.
// Метод 1 public static void itledCount1 (String s) {s = s.replaceall (" +", ""); // 1, преобразовать в массив символов char c [] = s.toChararray (); Карта <символ, целое число> tree = new TreeMap <символ, целое число> (); for (int i = 0; i <c.length; i ++) {// первое: a, 1 // второе время: a, 2 // 2, получить значение, соответствующее ключевому целочисленному значению = tree.get (c [i]); // Декомпиляция: целое значение = (целое число) tree.get (valueof (c [i])); // 3, хранить дерево суждения. Пропуск (c [i], значение == null? 1: значение+1); } // Если требуется формат результата: a (5) b (4) c (3) d (2) e (1) stringBuilder sbu = new StringBuilder (); for (ключ символа: wee.keyset ()) {integer count = tree.get (key); sbu.append (key) .append ("("). Append (count) .append (")"); } // конвертировать sbu в строку System.out.println (sbu.tostring ());} // Метод 2 Использовать поток // Это будет неверно при тестировании специальных символов, таких как // n, и его порядок будет неверным. Это вызвано MAP // Решение Использовать TreeMAP Public Static void LetterCount2 (String S) {S = S.Replaceall (" +", ""); Treemap <string, long> result = arrays.stream (s.split ("")) .sorted () // .collect (collectors.groupingby (function.identity (), collectors.conting ())); .collect (collectors.groupingby (function.identity (), treeMap :: new, collectors.conting ())); System.out.println (результат); } // Метод 3 Использовать collections.fretency // Фактически, он должен превратить строку в коллекцию, чтобы сохранить каждую строку, и сравнить каждую строку с коллекцией Public Static void Lettercount3 (String S) {S = S.ReplAceall (" +", ""); List <string> list = arrays.aslist (s.split ("" ")); Map <string, integer> map = new TreeMap <String, Integer> (); for (string str: list) {map.put (str, collections.fretency (list, str));} system.out.println (map); } // Метод 4 public static void itledcount4 (String s) {s = s.replaceall (" +", ""); String [] strs = s.split ("" "); Map <string, integer> map = new TreeMap <String, Integer> (); for (string str: strs) {map.put (str, stringcount (s, str));} system.out.println (map); } // Метод 5 Public static void itledCount5 (String S) {s = s.Replaceall (" +", ""); String [] strs = s.split ("" "); Map <string, integer> map = new TreeMap <String, Integer> (); for (string str: strs) {map.put (str, stringcount2 (s, str));} system.out.println (map); } // Использование разделенного общедоступного статического int stringCount (String maxstr, String substr) {// Примечание // 1. Заполнен автоматически // 4. Для специальных символов обратите внимание на использование экологичного характера int count = (maxstr + "") .split (substr) .length - 1; // system.out.println ("/" " + minstr +"/"" + " StringCount2 (String maxstr, String substr) {int count = 0; matcher m = pattern.compile (subtr) .matcher (maxstr); while (m.find ()) {count ++;} return count;}2. Статистика Количество слов в строке (только английский)
Это на самом деле то же самое, что и выше, и только простой метод записан ниже
Public Static void WordstringCount (String S) {// Начало - это строка, и после разделения ее становится потоком строки. Map <string, long> result = arrays.stream (s.split ("// s+")) .map (word-> word.replaceall ("[^a-za-z]", "")) .collect (collectors.groupingby (function.identity (), collectors.counting ())); System.out.println (результат); }3. Статистика Количество текстовых слов (только английский)
// Поиск по количеству слов в текстовом общедоступном void void wordfilecount (path) throws ioexception {// String Stream сначала в начале // split First // в потоку символов // фильтров <строка, long> result = files.lines (paths.get (pathse), charset.defaultcharet ().). Stream.flatmap (str-> arrays.stream (str.split (" +"))) .map (word-> word.replaceall ("[^a-za-z]", "")) // Удалить empty.filter (word-> word.length ()> 0) .collect (collectors.groupingby (function.idendity (), coltors. System.out.println (результат); }4. Другое неуместно
Мы знаем, что списки параметров переменных могут быть переданы без прохождения параметров.
для
public void testname () {System.out.println ("a"); } public void testName (String ... S) {// Нет параметров не передается, S будет инициализировать объект по умолчанию System.out.println ("b"); }Что я должен печатать при вызове TestName ()? Он будет печатать A и автоматически соответствует методу, где параметр действительно пуст
Приведенное выше резюме нескольких методов для Java8 для подсчета количества струнных букв (рекомендуется) является всем контентом, разделенным редактором. Я надеюсь, что это может дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.