1. Statistik Jumlah huruf string (dan pertahankan urutan abjad)
Misalnya: AABBBBBBBA OH BCAB CDABC DEAAA
Ada 5 cara yang saya tahu. Jika Anda memiliki yang lebih baik, beri saya saran.
// metode 1 public static void lettercount1 (string s) {s = s.replaceall (" +", ""); // 1, konversi ke karakter array char c [] = s.tochararray (); Peta <karakter, integer> pohon = treemap baru <karakter, integer> (); untuk (int i = 0; i <c.length; i ++) {// pertama: a, 1 // kedua kalinya: a, 2 // 2, dapatkan nilai yang sesuai dengan nilai integer kunci = pohon.get (c [i]); // dekompilasi: nilai integer = (integer) tree.get (karakter.valueof (c [i]); // 3, simpan pohon penilaian.put (c [i], value == null? 1: nilai+1); } // Jika format hasil diperlukan: A (5) B (4) C (3) D (2) E (1) StringBuilder SBU = New StringBuilder (); untuk (kunci karakter: tree.keyset ()) {integer count = tree.get (key); sbu.append (key) .append ("("). append (count) .append (")"); } // Konversi SBU ke String System.out.println (sbu.toString ());} // Metode 2 Gunakan Stream // Ini akan salah saat menguji karakter khusus, seperti // n, dan pesanannya akan salah. Ini disebabkan oleh peta // solusi menggunakan 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.countting ())); .collect (collector.groupingby (function.identity (), treemap :: new, collectors.countting ())); System.out.println (hasil); } // Metode 3 Gunakan collections.frequency // Faktanya, itu adalah mengubah string menjadi koleksi untuk menyimpan setiap string, dan membandingkan setiap string dengan koleksi public static void lettercount3 (string s) {s = s.replaceall (" +", ""); Daftar <string> list = arrays.aslist (s.split ("")); Peta <string, integer> peta = treemap baru <string, integer> (); untuk (string str: list) {map.put (strt, collections.frequency (daftar, str));} system.out.println (peta); } // Metode 4 public static void lettercount4 (string s) {s = s.replaceall (" +", ""); String [] strs = s.split (""); Peta <string, integer> peta = treemap baru <string, integer> (); untuk (string strs: strs) {map.put (str stringcount (s, str));} system.out.println (peta); } // Metode 5 public static void lettercount5 (string s) {s = s.replaceall (" +", ""); String [] strs = s.split (""); Peta <string, integer> peta = treemap baru <string, integer> (); untuk (string str: strs) {map.put (str, stringcount2 (s, str));} system.out.println (peta); } // Gunakan split public static int stringCount (string maxstr, string substr) {// note // 1. Misalnya, jika qqqq tidak ditemukan, maka string akan dikembalikan secara langsung/2. Misalnya, qqqjava, tidak ada karakter lain di akhir, dan tidak akan dibagi pada saat ini, sehingga Anda dapat menambahkan ruang ////tidak akan ada karakter di akhir, dan tidak akan dibagi pada saat ini, sehingga Anda dapat menambahkan ruang /////no poube pada akhir, dan tidak akan dibagi pada saat ini, sehingga Anda dapat menambahkan ruang // 3. automatically // 4. For special characters, please pay attention to using the escape character int count = (maxstr + " ").split(substr).length - 1;// System.out.println("/"" + minstr + "/"" + "Number of string occurrences: " + count);return count;} // If you want to be case-insensitive, compile(minstr,CASE_INSENSITIVE) public static int StringCount2 (String MaxStr, String Substr) {int count = 0; pencocokan m = pola.compile (substr) .Matcher (maxStr); while (m.find ()) {count ++;} return count;}2. Statistik Jumlah kata dalam string (hanya bahasa Inggris)
Ini sebenarnya sama seperti di atas, dan hanya metode sederhana yang ditulis di bawah ini
public static void WordTringCount (String S) {// Awal adalah string, dan setelah membelahnya menjadi stream string. Peta <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 (hasil); }3. Statistik Jumlah kata teks (hanya bahasa Inggris)
// Cari jumlah kata dalam teks public static void wordFileCount (string path) melempar ioException {// String stream adalah yang pertama pada awal // split first // menjadi stream karakter // peta filter <string, long> result = file.lines (paths.get (path), charset.defaultCarset ()) .parallel (stand-stand. Stream.flatmap (str-> arrays.stream (str.split (" +")) .map (word-> word.replaceall ("[^a-za-z]", "")) // hapus empt. System.out.println (hasil); }4. Lainnya tidak relevan
Kita tahu bahwa daftar parameter variabel dapat dilewati tanpa parameter lewat.
untuk
public void testName () {System.out.println ("a"); } public void testName (String ... S) {// Tidak ada parameter yang dilewati, S akan menginisialisasi objek dengan default system.out.println ("b"); }Apa yang harus saya cetak saat memanggil TestName ()? Itu akan mencetak A dan akan secara otomatis cocok dengan metode di mana parameternya benar -benar kosong
Ringkasan di atas beberapa metode untuk Java8 untuk menghitung jumlah huruf string (disarankan) adalah seluruh konten yang dibagikan oleh editor. Saya harap ini dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.