From 82be2bb9c1a7acc69257bbb26b2eed2813d6f705 Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Sun, 21 Feb 2021 14:16:24 +0800 Subject: [PATCH 01/27] commit test --- 221801427/README.md | 0 221801427/codestyle.md | 0 221801427/src/Lib.java | 15 +++++++++++++++ 221801427/src/WordCount.java | 10 ++++++++++ 4 files changed, 25 insertions(+) create mode 100644 221801427/README.md create mode 100644 221801427/codestyle.md create mode 100644 221801427/src/Lib.java create mode 100644 221801427/src/WordCount.java diff --git a/221801427/README.md b/221801427/README.md new file mode 100644 index 00000000..e69de29b diff --git a/221801427/codestyle.md b/221801427/codestyle.md new file mode 100644 index 00000000..e69de29b diff --git a/221801427/src/Lib.java b/221801427/src/Lib.java new file mode 100644 index 00000000..d7d5ef0f --- /dev/null +++ b/221801427/src/Lib.java @@ -0,0 +1,15 @@ +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class Lib { + static void wordCount() { + List lines = Arrays.asList("hello java", "hello world"); + Map words = lines.stream() + .flatMap(w -> Stream.of(w.split(" "))) + .collect(Collectors.groupingBy(w -> w, Collectors.counting())); + System.out.println(words); + } +} diff --git a/221801427/src/WordCount.java b/221801427/src/WordCount.java new file mode 100644 index 00000000..e6c7f8f4 --- /dev/null +++ b/221801427/src/WordCount.java @@ -0,0 +1,10 @@ + +public class WordCount { + + public static void main(String[] args) { + // TODO 自动生成的方法存根 + Lib.wordCount(); + + } + +} From 65139d617ada0c8c480fbeeb7d2fb51188f641e2 Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Sun, 21 Feb 2021 14:44:33 +0800 Subject: [PATCH 02/27] commit test 2 --- 221801427/src/Lib.java | 2 +- 221801427/src/WordCount.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/221801427/src/Lib.java b/221801427/src/Lib.java index d7d5ef0f..8457681d 100644 --- a/221801427/src/Lib.java +++ b/221801427/src/Lib.java @@ -5,7 +5,7 @@ import java.util.stream.Stream; public class Lib { - static void wordCount() { + static void countWord() { List lines = Arrays.asList("hello java", "hello world"); Map words = lines.stream() .flatMap(w -> Stream.of(w.split(" "))) diff --git a/221801427/src/WordCount.java b/221801427/src/WordCount.java index e6c7f8f4..ee29edb5 100644 --- a/221801427/src/WordCount.java +++ b/221801427/src/WordCount.java @@ -3,7 +3,7 @@ public class WordCount { public static void main(String[] args) { // TODO 自动生成的方法存根 - Lib.wordCount(); + Lib.countWord(); } From 80142584fb0549629ff79a45ca173b45c94fc06d Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Mon, 22 Feb 2021 14:48:28 +0800 Subject: [PATCH 03/27] commit test 3 --- example/README.md | 0 example/codestyle.md | 0 example/src/WordCount.java | 0 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 example/README.md delete mode 100644 example/codestyle.md delete mode 100644 example/src/WordCount.java diff --git a/example/README.md b/example/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/example/codestyle.md b/example/codestyle.md deleted file mode 100644 index e69de29b..00000000 diff --git a/example/src/WordCount.java b/example/src/WordCount.java deleted file mode 100644 index e69de29b..00000000 From 9f85000f7fc8875aa713029abe5271009c94627f Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Mon, 22 Feb 2021 18:57:09 +0800 Subject: [PATCH 04/27] Update codestyle.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 鍒跺畾浜嗕唬鐮佽鑼 --- 221801427/codestyle.md | 110 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) diff --git a/221801427/codestyle.md b/221801427/codestyle.md index e69de29b..502c6834 100644 --- a/221801427/codestyle.md +++ b/221801427/codestyle.md @@ -0,0 +1,110 @@ +锘## 浠g爜瑙勮寖 + +- 缂╄繘 + +>1銆佷娇鐢ㄧ殑缂╄繘鐨勫瓧绗︽暟涓4涓┖鏍硷紝鐢═ab锛堝畾涔塗ab閿墿灞曟垚涓4涓┖鏍奸敭锛夋潵杩涜缂╄繘锛孴ab閿湪涓嶅悓鐨勬儏鍐典笅浼氭樉绀轰笉鍚岀殑闀垮害锛屼弗閲嶅共鎵伴槄璇讳綋楠屻4涓┖鏍肩殑璺濈浠庡彲璇绘ф潵璇达紝姝eソ銆 + +>2銆佸湪浣跨敤if鎴杦hile绛夊祵濂楃粨鏋勬椂锛屽湪if鎴杦hile绛夎鍙ヤ笅鍐嶈繘琛孴ab锛堟墿灞曚负4涓┖鏍硷級缂╄繘锛屼娇绋嬪簭鐪嬭捣鏉ユ洿娓呮櫚銆佺編瑙傘 + +- 鍙橀噺鍛藉悕 + +>1銆佸眬閮ㄥ彉閲忕殑鍛藉悕閲囩敤涓嬪垝绾垮垎闅旀硶锛屽眬閮ㄥ彉閲忓悕閲囩敤鑻辨枃鍗曡瘝鐨勬潵鍛藉悕锛岃繖鏍锋洿鑳芥槑鐧藉彉閲忕殑鍚箟銆傜粷涓嶄娇鐢ㄦ嫾闊充笌鑻辨枃娣峰悎鐨勬柟寮忔垨鐩存帴浣跨敤涓枃鐨勬柟寮忋 +>>姝d緥锛歴tudent_id/teacher_id +鍙嶄緥锛 DaZhePromotion [鎵撴姌] / getPingfenByName() [璇勫垎] / int鏌愬彉閲 = 3 + +>2銆侀亣鍒板惈涔夌浉鍚岀殑鍙橀噺锛屼細鍦ㄦ湯灏剧敤1锛2鏉ュ尯鍒備絾涔熸湁渚嬪锛屽湪浣跨敤寰幆鍙橀噺鏃讹紝鍥犳棤鐗规畩鍚箟锛屼粎鐢╥,j,k鏉ュ畾涔夈 +>>姝d緥锛歱1/p2/p3 鍜 for锛坕 = 0锛涖傘傘傦級 + +>3銆佸湪鏍囪瘑绗﹀懡鍚嶆柟闈紝灏戦噰鐢ㄧ缉鍐欙紝鑻ラ噰鐢ㄧ缉鍐欏垯鏌ヨ鍥介檯閫氱敤鐨勫啓娉曪紝鐢ㄤ細鍙戦煶鐨勯儴鍒嗘潵鍛藉悕锛屽苟鍦ㄤ笉瀹规槗鐞嗚В鐨勭缉鍐欏懡鍚嶅悗娣诲姞娉ㄩ噴銆傛爣璇嗙闀垮害璺熼殢鎵瑕佽〃杈剧殑鍚箟鏉ュ鍑忛暱搴︼紝浠ヤ娇鍏舵洿瀹规槗鐞嗚В銆傚湪鏍囪瘑绗﹀懡鍚嶄腑锛屾渶閲嶈鐨勬槸瑕佷繚鎸佷竴鑷存р斺斿湪鏁翠釜绋嬪簭涓紝瀵瑰彉閲忔垨鏄嚱鏁颁竴绫讳娇鐢ㄧ浉鍚岀殑鍛藉悕瑙勫垯銆 +>>姝d緥锛歩nt temp 鍜 int tmp + +- 姣忚鏈澶氬瓧绗︽暟 + +>1銆佹瘡琛岃瀹斤紙鍚缉杩涳級涓嶅厑璁歌秴杩100涓瓧绗︺ + +>2銆佸綋涓涓▼搴忚寰堥暱鏃讹紝鍦ㄩ傚綋浣嶇疆杩愮敤鍥炶溅閿皢绋嬪簭鍒嗚锛屼娇鍏朵笉鐮村潖璇彞鐨勫畬鏁存э紝涔熶娇璇彞鐪嬭捣鏉ユ樉寰椾笉娣蜂贡銆侀浂鏁c + +- 鍑芥暟鏈澶ц鏁 + +>1銆佷竴涓嚱鏁板厑璁稿寘鍚鍙ョ殑琛屾暟鎴戦檺鍒朵负80琛岋紝涓嶅寘鎷┖琛屽拰娉ㄩ噴銆 + +>2銆佷竴涓嚱鏁扮殑鏈澶ч暱搴﹀拰鍑芥暟鐨勫鏉傜▼搴︿互鍙婄缉杩涘ぇ灏忔垚鍙嶆瘮銆 + +- 鍑芥暟銆佺被鍛藉悕 + +>1銆佸嚱鏁板悕浣跨敤lowerCamelCase椋庢牸锛屽繀椤婚伒浠庨┘宄板舰寮忋傚嚱鏁板悕鐢ㄥ姩璇嶆墦澶达紝浠ュ悕璇嶇粨灏剧殑褰㈠紡锛堝皯鏁颁細鍙湁鍔ㄨ瘝鍛藉悕锛夛紝浣垮嚱鏁板姛鑳芥洿瀹规槗鐞嗚В銆 +>>姝d緥锛歝ountWord/getId + +>2銆佺被鍚嶄娇鐢║pperCamelCase椋庢牸锛屽繀椤婚伒浠庨┘宄板舰寮忋 +>>姝d緥锛歐ordCount/Lib + +- 甯搁噺 + +>1銆佸父閲忓懡鍚嶅叏閮ㄥぇ鍐欙紝鍗曡瘝闂寸敤涓嬪垝绾块殧寮锛屽姏姹傝涔夎〃杈惧畬鏁存竻妤氥 +>>姝d緥锛歱ublic static final int YEAR = 365; +>>姝d緥锛 MAX_STOCK_COUNT +鍙嶄緥锛 MAX_COUNT + +>2銆佸鏋滃彉閲忓间粎鍦ㄤ竴涓寖鍥村唴鍙樺寲鐢‥num绫汇傚鏋滆繕甯︽湁鍚嶇О涔嬪鐨勫欢浼稿睘鎬э紝蹇呴』浣跨敤Enum绫伙紝绫诲悕鍚庣紑甯num浠ユ竻鏅拌〃绀猴紝鏋氫妇鎴愬憳鍚嶇О闇瑕佸叏澶у啓锛屽崟璇嶉棿鐢ㄤ笅鍒掔嚎闅斿紑銆備笅闈㈡渚嬩腑鐨勬暟瀛楀氨鏄欢浼镐俊鎭紝琛ㄧず鏄熸湡鍑犮 +>>姝d緥锛歱ublicEnum{MONDAY(1),TUESDAY(2),WEDNESDAY(3), +THURSDAY(4),FRIDAY(5),SATURDAY(6),SUNDAY(7);} + +- 绌鸿瑙勫垯 + +>1銆佸彉閲忓畾涔夊拰鏂规硶瀹炵幇闂村鍔犵┖琛岋紝渚夸簬闃呰銆 + +>2銆佸湪鍑芥暟涔嬮棿锛屽鍔犵┖琛屾潵鍒嗗壊鍑芥暟锛岃繖鏍蜂娇鍑芥暟涔嬮棿鏄惧緱涓嶆嫢鎸わ紝鍖哄垎鏇村姞鏄庢樉銆 + +- 娉ㄩ噴瑙勫垯 + +>1銆佺被銆佺被鏂规硶鐨勬敞閲婁娇鐢/*鍐呭*/鏍煎紡銆 + +>2銆佷竴鑸湪鍙橀噺鍚嶅悗锛屾坊鍔犱竴琛屾敞閲娿 +>>姝d緥锛歝har option; //鍔熻兘閫夐」 + +>3銆佽竟鍐欎唬鐮佽竟娉ㄩ噴锛屼慨鏀逛唬鐮佸悓鏃朵慨鏀圭浉搴旂殑娉ㄩ噴锛屼互淇濊瘉娉ㄩ噴涓庝唬鐮佺殑涓鑷存с備笉鍐嶆湁鐢ㄧ殑娉ㄩ噴瑕佸垹闄ゃ + +>4銆佹敞閲婂敖閲忓彧鐢ˋSCII瀛楃锛屼笉瑕佺敤涓枃鎴栧叾浠栫壒娈婂瓧绗︼紝鍒╀簬绋嬪簭鐨勫彲绉绘鎬с + +- 鎿嶄綔绗﹀墠鍚庣┖鏍 + +>1銆佷竴鍏冭繍绠楃涓庡彉閲忎箣闂存病鏈夌┖鏍 +>>姝d緥锛歩++/!flag + +>2銆佷簩鍏冭繍绠楃涓庡彉閲忎箣闂村繀椤绘湁绌烘牸銆 +>>姝d緥锛歩nt i = 0;/sum = x + y; + +- 澶ф嫭鍙蜂綅缃 + +>1銆佹瘡涓渰鈥濆拰鈥渳鈥濋兘鐙崰涓琛屻 +>>姝d緥锛
if (condition) +{ +  DoSomething(); +} +else +{ +  DoSomethingElse(); +} + +>2銆佸湪if绛夎鍙ュ潡杈冧负绠鍗曟椂锛屼篃涓嶇渷鐣ュ乏鍙冲ぇ鎷彿鐨勪娇鐢紝浠ヤ娇绋嬪簭鏄惧緱鏇存竻鏅般佸伐鏁淬 + +- 鍏朵粬瑙勫垯 + +>1銆侀渶瑕佷娇鐢ㄥ彉閲忔椂锛屽湪浣跨敤鍓嶅畾涔夛紝閬垮厤涓浜涢渶瑕佺敤鍒板叾鍊兼椂锛屾棤娉曡幏寰楃殑鎯呭喌銆備緥濡傦細 +>>姝d緥锛歩nt i; +    for(i = 0锛涖傘傘傦級 + +>2銆佸涓彉閲忓畾涔夋椂鍒嗚鍐,浣跨▼搴忔洿鍔犵編瑙傘 +>>姝d緥锛歺 = 1; +   y = 2; +   z = 3; + +>3銆佸彉閲忓垵濮嬪寲鏃讹紝鎻愬″湪灏藉彲鑳藉皬鐨勪綔鐢ㄥ煙涓0鏄庡彉閲忥紝绂荤涓娆′娇鐢ㄨ秺杩戣秺濂姐傝繖浣垮緱浠g爜鏄撲簬闃呰锛屾槗浜庡畾浣嶅彉閲忕殑澹版槑浣嶇疆銆佸彉閲忕被鍨嬪拰鍒濆鍊笺 +>>姝d緥锛歩nt i = 3; + +>4銆佸涓笉鍚岀殑杩愮畻绗﹀悓鏃跺瓨鍦ㄦ椂鍚堢悊浣跨敤鎷彿鏉ユ槑纭紭鍏堢骇銆 +>>渚嬶細2 << 2 + 1 * 3 - 4 +  2 << (2 + 1 * 3 - 4) + +>5銆侀伩鍏嶇浉鍚岀殑浠g爜娈靛湪澶氫釜鍦版柟鍑虹幇鐩稿悓鐨勪唬鐮侊紝蹇呴』褰掔撼鍑烘潵骞朵笖鐢ㄤ竴涓被灏佽璧锋潵銆 +璇彞宓屽灞傛涓嶅緱瓒呰繃3灞傦紝瓒呭嚭鐨勫繀椤绘娊鍙栧嚭涓棿鍑芥暟銆 \ No newline at end of file From 453cd698de0ca8997ba92bdedf943f6d1cc0fab3 Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Mon, 22 Feb 2021 19:07:45 +0800 Subject: [PATCH 05/27] Update codestyle.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 鏍煎紡閿欒淇 --- 221801427/codestyle.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/221801427/codestyle.md b/221801427/codestyle.md index 502c6834..5417c7c5 100644 --- a/221801427/codestyle.md +++ b/221801427/codestyle.md @@ -77,13 +77,13 @@ THURSDAY(4),FRIDAY(5),SATURDAY(6),SUNDAY(7);} - 澶ф嫭鍙蜂綅缃 >1銆佹瘡涓渰鈥濆拰鈥渳鈥濋兘鐙崰涓琛屻 ->>姝d緥锛
if (condition) -{ -  DoSomething(); -} -else -{ -  DoSomethingElse(); +>>姝d緥锛
if (condition)
+{
+  DoSomething();
+}
+else
+{
+  DoSomethingElse();
} >2銆佸湪if绛夎鍙ュ潡杈冧负绠鍗曟椂锛屼篃涓嶇渷鐣ュ乏鍙冲ぇ鎷彿鐨勪娇鐢紝浠ヤ娇绋嬪簭鏄惧緱鏇存竻鏅般佸伐鏁淬 From 08744fd191393da8b363e0b2a936945b8d264be5 Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Thu, 25 Feb 2021 11:55:30 +0800 Subject: [PATCH 06/27] =?UTF-8?q?=E5=BB=BA=E7=AB=8B=E4=BA=86=E5=9F=BA?= =?UTF-8?q?=E6=9C=AC=E6=9E=B6=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 221801427/src/Lib.java | 15 --------------- 221801427/src/WordCount.java | 19 ++++++++++++++----- 221801427/src/lib/service/CharCounter.java | 6 ++++++ .../src/lib/service/FrequencySorter.java | 6 ++++++ 221801427/src/lib/service/LineCounter.java | 6 ++++++ 221801427/src/lib/service/WordCounter.java | 6 ++++++ 221801427/src/lib/tool/FileWriter.java | 6 ++++++ 7 files changed, 44 insertions(+), 20 deletions(-) delete mode 100644 221801427/src/Lib.java create mode 100644 221801427/src/lib/service/CharCounter.java create mode 100644 221801427/src/lib/service/FrequencySorter.java create mode 100644 221801427/src/lib/service/LineCounter.java create mode 100644 221801427/src/lib/service/WordCounter.java create mode 100644 221801427/src/lib/tool/FileWriter.java diff --git a/221801427/src/Lib.java b/221801427/src/Lib.java deleted file mode 100644 index 8457681d..00000000 --- a/221801427/src/Lib.java +++ /dev/null @@ -1,15 +0,0 @@ -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -public class Lib { - static void countWord() { - List lines = Arrays.asList("hello java", "hello world"); - Map words = lines.stream() - .flatMap(w -> Stream.of(w.split(" "))) - .collect(Collectors.groupingBy(w -> w, Collectors.counting())); - System.out.println(words); - } -} diff --git a/221801427/src/WordCount.java b/221801427/src/WordCount.java index ee29edb5..760ab6dd 100644 --- a/221801427/src/WordCount.java +++ b/221801427/src/WordCount.java @@ -1,10 +1,19 @@ +import lib.service.*; +import lib.tool.*; -public class WordCount { +import java.util.Arrays; +import java.util.List; +import java.util.Map; - public static void main(String[] args) { - // TODO 自动生成的方法存根 - Lib.countWord(); - } +public class WordCount +{ + + public static void main(String[] args) + { + // TODO 自动生成的方法存根 + + } + } diff --git a/221801427/src/lib/service/CharCounter.java b/221801427/src/lib/service/CharCounter.java new file mode 100644 index 00000000..b61793f5 --- /dev/null +++ b/221801427/src/lib/service/CharCounter.java @@ -0,0 +1,6 @@ +package lib.service; + +public class CharCounter +{ + +} diff --git a/221801427/src/lib/service/FrequencySorter.java b/221801427/src/lib/service/FrequencySorter.java new file mode 100644 index 00000000..e5909c02 --- /dev/null +++ b/221801427/src/lib/service/FrequencySorter.java @@ -0,0 +1,6 @@ +package lib.service; + +public class FrequencySorter +{ + +} diff --git a/221801427/src/lib/service/LineCounter.java b/221801427/src/lib/service/LineCounter.java new file mode 100644 index 00000000..327779bf --- /dev/null +++ b/221801427/src/lib/service/LineCounter.java @@ -0,0 +1,6 @@ +package lib.service; + +public class LineCounter +{ + +} diff --git a/221801427/src/lib/service/WordCounter.java b/221801427/src/lib/service/WordCounter.java new file mode 100644 index 00000000..a4fe7db5 --- /dev/null +++ b/221801427/src/lib/service/WordCounter.java @@ -0,0 +1,6 @@ +package lib.service; + +public class WordCounter +{ + +} diff --git a/221801427/src/lib/tool/FileWriter.java b/221801427/src/lib/tool/FileWriter.java new file mode 100644 index 00000000..b00cb5d9 --- /dev/null +++ b/221801427/src/lib/tool/FileWriter.java @@ -0,0 +1,6 @@ +package lib.tool; + +public class FileWriter +{ + +} From 96f0981f9f03a5efed8075ceb298b243715ae9b2 Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Thu, 25 Feb 2021 18:58:11 +0800 Subject: [PATCH 07/27] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=EF=BC=8C=E4=BB=A5=E5=8F=8A=E5=AF=B9=E5=BA=94?= =?UTF-8?q?=E7=9A=84=E6=96=87=E4=BB=B6=E8=AF=BB=E5=86=99=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 221801427/codestyle.md | 4 +- 221801427/src/WordCount.java | 65 +++++++++++++++++++--- 221801427/src/input.txt | 3 + 221801427/src/lib/service/CharCounter.java | 26 +++++++++ 221801427/src/lib/tool/FilePrinter.java | 25 +++++++++ 221801427/src/lib/tool/FileWriter.java | 6 -- 221801427/src/output.txt | 1 + 7 files changed, 115 insertions(+), 15 deletions(-) create mode 100644 221801427/src/input.txt create mode 100644 221801427/src/lib/tool/FilePrinter.java delete mode 100644 221801427/src/lib/tool/FileWriter.java create mode 100644 221801427/src/output.txt diff --git a/221801427/codestyle.md b/221801427/codestyle.md index 5417c7c5..6e7c9d1e 100644 --- a/221801427/codestyle.md +++ b/221801427/codestyle.md @@ -8,8 +8,8 @@ - 鍙橀噺鍛藉悕 ->1銆佸眬閮ㄥ彉閲忕殑鍛藉悕閲囩敤涓嬪垝绾垮垎闅旀硶锛屽眬閮ㄥ彉閲忓悕閲囩敤鑻辨枃鍗曡瘝鐨勬潵鍛藉悕锛岃繖鏍锋洿鑳芥槑鐧藉彉閲忕殑鍚箟銆傜粷涓嶄娇鐢ㄦ嫾闊充笌鑻辨枃娣峰悎鐨勬柟寮忔垨鐩存帴浣跨敤涓枃鐨勬柟寮忋 ->>姝d緥锛歴tudent_id/teacher_id +>1銆佸眬閮ㄥ彉閲忎娇鐢╨owerCamelCase椋庢牸锛屽繀椤婚伒浠庨┘宄板舰寮忋傚眬閮ㄥ彉閲忓悕閲囩敤鑻辨枃鍗曡瘝鐨勬潵鍛藉悕锛岃繖鏍锋洿鑳芥槑鐧藉彉閲忕殑鍚箟銆傜粷涓嶄娇鐢ㄦ嫾闊充笌鑻辨枃娣峰悎鐨勬柟寮忔垨鐩存帴浣跨敤涓枃鐨勬柟寮忋 +>>姝d緥锛歴tudentId/teacherId 鍙嶄緥锛 DaZhePromotion [鎵撴姌] / getPingfenByName() [璇勫垎] / int鏌愬彉閲 = 3 >2銆侀亣鍒板惈涔夌浉鍚岀殑鍙橀噺锛屼細鍦ㄦ湯灏剧敤1锛2鏉ュ尯鍒備絾涔熸湁渚嬪锛屽湪浣跨敤寰幆鍙橀噺鏃讹紝鍥犳棤鐗规畩鍚箟锛屼粎鐢╥,j,k鏉ュ畾涔夈 diff --git a/221801427/src/WordCount.java b/221801427/src/WordCount.java index 760ab6dd..9c762883 100644 --- a/221801427/src/WordCount.java +++ b/221801427/src/WordCount.java @@ -1,19 +1,70 @@ import lib.service.*; import lib.tool.*; -import java.util.Arrays; -import java.util.List; -import java.util.Map; - +import java.io.BufferedReader; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStreamReader; public class WordCount { + /** + * @param inputFileName + * @param outputFileName + */ + private static String inputFileName; + private static String outputFileName; + private int charCnt = 0; - public static void main(String[] args) + public WordCount(String inputFileName, String outputFileName) + { + WordCount.inputFileName = inputFileName; + WordCount.outputFileName = outputFileName; + } + + public void Count() { - // TODO 自动生成的方法存根 + InputStreamReader isr = null; + BufferedReader bf = null; + try + { + isr = new InputStreamReader(new FileInputStream(inputFileName)); + } + catch (FileNotFoundException e) + { + System.out.println("File Not Found"); + e.printStackTrace(); + } + if (isr != null) + { + bf = new BufferedReader(isr); + charCnt = CharCounter.countChar(bf); + try + { + isr.close(); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + } + public void Print() + { + FilePrinter.writeFile(charCnt, outputFileName); } - + public static void main(String[] args) + { + if (args.length != 2) + { + System.out.println("Invalid input"); + return; + } + WordCount cmd = new WordCount(args[0], args[1]); + cmd.Count(); + cmd.Print(); + } } diff --git a/221801427/src/input.txt b/221801427/src/input.txt new file mode 100644 index 00000000..7382bf33 --- /dev/null +++ b/221801427/src/input.txt @@ -0,0 +1,3 @@ +abcdefg +hijklm n + opqrstuvwxyz \ No newline at end of file diff --git a/221801427/src/lib/service/CharCounter.java b/221801427/src/lib/service/CharCounter.java index b61793f5..c653e2d9 100644 --- a/221801427/src/lib/service/CharCounter.java +++ b/221801427/src/lib/service/CharCounter.java @@ -1,6 +1,32 @@ package lib.service; +import java.io.*; + public class CharCounter { + /** + * @param fileName + * @return cnt + */ + public static int countChar(BufferedReader bf) + { + int b = 0; + int cnt = 0; + try + { + while ((b = bf.read()) != -1) + { + if (b != 13) + { + cnt++; + } + } + } + catch (IOException e) + { + e.printStackTrace(); + } + return cnt; + } } diff --git a/221801427/src/lib/tool/FilePrinter.java b/221801427/src/lib/tool/FilePrinter.java new file mode 100644 index 00000000..48f26e61 --- /dev/null +++ b/221801427/src/lib/tool/FilePrinter.java @@ -0,0 +1,25 @@ +package lib.tool; + +import java.io.*; + +public class FilePrinter +{ + public static void writeFile(int charCnt, String fileName) + { + File file = new File(fileName); + FileWriter fileWriter = null; + try + { + fileWriter = new FileWriter(file); + BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); + + bufferedWriter.write("characters: " + charCnt + "\n"); + bufferedWriter.flush(); + bufferedWriter.close(); + } + catch (IOException e) + { + e.printStackTrace(); + } + } +} diff --git a/221801427/src/lib/tool/FileWriter.java b/221801427/src/lib/tool/FileWriter.java deleted file mode 100644 index b00cb5d9..00000000 --- a/221801427/src/lib/tool/FileWriter.java +++ /dev/null @@ -1,6 +0,0 @@ -package lib.tool; - -public class FileWriter -{ - -} diff --git a/221801427/src/output.txt b/221801427/src/output.txt new file mode 100644 index 00000000..f3d51bc8 --- /dev/null +++ b/221801427/src/output.txt @@ -0,0 +1 @@ +characters: 30 From 93da9e6f5e1f1247efde03a0dc8592ae25a0dc9b Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Fri, 26 Feb 2021 00:43:38 +0800 Subject: [PATCH 08/27] =?UTF-8?q?=E9=87=8D=E5=86=99=E4=BA=86=E7=AE=97?= =?UTF-8?q?=E6=B3=95=E5=AE=9E=E7=8E=B0=EF=BC=8C=E5=A2=9E=E5=8A=A0=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E8=A1=8C=E6=95=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 221801427/src/WordCount.java | 42 +++++++++++++++------- 221801427/src/input.txt | 2 ++ 221801427/src/lib/service/CharCounter.java | 24 ++----------- 221801427/src/lib/service/LineCounter.java | 6 ---- 221801427/src/lib/tool/FilePrinter.java | 3 +- 221801427/src/output.txt | 3 +- 6 files changed, 39 insertions(+), 41 deletions(-) delete mode 100644 221801427/src/lib/service/LineCounter.java diff --git a/221801427/src/WordCount.java b/221801427/src/WordCount.java index 9c762883..4fa0c709 100644 --- a/221801427/src/WordCount.java +++ b/221801427/src/WordCount.java @@ -15,7 +15,9 @@ public class WordCount */ private static String inputFileName; private static String outputFileName; + private static String content = new String(); private int charCnt = 0; + private int lineCnt = 0; public WordCount(String inputFileName, String outputFileName) { @@ -27,33 +29,49 @@ public void Count() { InputStreamReader isr = null; BufferedReader bf = null; + String line; + try { isr = new InputStreamReader(new FileInputStream(inputFileName)); + bf = new BufferedReader(isr); + StringBuffer contents = new StringBuffer(); + + line = bf.readLine(); + while (line != null) + { + if (!line.equals("")) + { + lineCnt++; + } + contents.append(line); + line = bf.readLine(); + if (line != null) + { + contents.append("\n"); + } + } + content = contents.toString(); + + charCnt = CharCounter.countChar(content); + + bf.close(); + isr.close(); } catch (FileNotFoundException e) { System.out.println("File Not Found"); e.printStackTrace(); } - if (isr != null) + catch (IOException e) { - bf = new BufferedReader(isr); - charCnt = CharCounter.countChar(bf); - try - { - isr.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } + e.printStackTrace(); } } public void Print() { - FilePrinter.writeFile(charCnt, outputFileName); + FilePrinter.writeFile(charCnt, lineCnt, outputFileName); } public static void main(String[] args) diff --git a/221801427/src/input.txt b/221801427/src/input.txt index 7382bf33..c4418495 100644 --- a/221801427/src/input.txt +++ b/221801427/src/input.txt @@ -1,3 +1,5 @@ abcdefg hijklm n + + opqrstuvwxyz \ No newline at end of file diff --git a/221801427/src/lib/service/CharCounter.java b/221801427/src/lib/service/CharCounter.java index c653e2d9..f16bf075 100644 --- a/221801427/src/lib/service/CharCounter.java +++ b/221801427/src/lib/service/CharCounter.java @@ -1,32 +1,14 @@ package lib.service; -import java.io.*; - public class CharCounter { /** * @param fileName - * @return cnt + * @return 字符总数 */ - public static int countChar(BufferedReader bf) + public static int countChar(String content) { - int b = 0; - int cnt = 0; - - try - { - while ((b = bf.read()) != -1) - { - if (b != 13) - { - cnt++; - } - } - } - catch (IOException e) - { - e.printStackTrace(); - } + int cnt = content.length(); return cnt; } } diff --git a/221801427/src/lib/service/LineCounter.java b/221801427/src/lib/service/LineCounter.java deleted file mode 100644 index 327779bf..00000000 --- a/221801427/src/lib/service/LineCounter.java +++ /dev/null @@ -1,6 +0,0 @@ -package lib.service; - -public class LineCounter -{ - -} diff --git a/221801427/src/lib/tool/FilePrinter.java b/221801427/src/lib/tool/FilePrinter.java index 48f26e61..f61341ff 100644 --- a/221801427/src/lib/tool/FilePrinter.java +++ b/221801427/src/lib/tool/FilePrinter.java @@ -4,7 +4,7 @@ public class FilePrinter { - public static void writeFile(int charCnt, String fileName) + public static void writeFile(int charCnt, int lineCnt, String fileName) { File file = new File(fileName); FileWriter fileWriter = null; @@ -14,6 +14,7 @@ public static void writeFile(int charCnt, String fileName) BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); bufferedWriter.write("characters: " + charCnt + "\n"); + bufferedWriter.write("lines: " + lineCnt + "\n"); bufferedWriter.flush(); bufferedWriter.close(); } diff --git a/221801427/src/output.txt b/221801427/src/output.txt index f3d51bc8..6ff5ea65 100644 --- a/221801427/src/output.txt +++ b/221801427/src/output.txt @@ -1 +1,2 @@ -characters: 30 +characters: 32 +lines: 3 From afca1e92bea2b715250939dedd5ab4d168bf0498 Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Sat, 27 Feb 2021 00:25:38 +0800 Subject: [PATCH 09/27] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E6=9C=89=E6=95=88=E5=8D=95=E8=AF=8D=E6=80=BB=E6=95=B0?= =?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 221801427/src/WordCount.java | 9 ++++-- 221801427/src/input.txt | 3 +- 221801427/src/lib/service/CharCounter.java | 3 +- 221801427/src/lib/service/WordCounter.java | 33 +++++++++++++++++++++- 221801427/src/lib/tool/FilePrinter.java | 3 +- 221801427/src/output.txt | 5 ++-- 6 files changed, 46 insertions(+), 10 deletions(-) diff --git a/221801427/src/WordCount.java b/221801427/src/WordCount.java index 4fa0c709..f5aac3aa 100644 --- a/221801427/src/WordCount.java +++ b/221801427/src/WordCount.java @@ -17,6 +17,7 @@ public class WordCount private static String outputFileName; private static String content = new String(); private int charCnt = 0; + private int wordCnt = 0; private int lineCnt = 0; public WordCount(String inputFileName, String outputFileName) @@ -30,12 +31,13 @@ public void Count() InputStreamReader isr = null; BufferedReader bf = null; String line; - + try { isr = new InputStreamReader(new FileInputStream(inputFileName)); bf = new BufferedReader(isr); StringBuffer contents = new StringBuffer(); + String regex = "[^0-9A-Za-z]"; line = bf.readLine(); while (line != null) @@ -51,9 +53,10 @@ public void Count() contents.append("\n"); } } - content = contents.toString(); + content = contents.toString().toLowerCase().replaceAll(regex, "|"); charCnt = CharCounter.countChar(content); + wordCnt = WordCounter.countWord(content); bf.close(); isr.close(); @@ -71,7 +74,7 @@ public void Count() public void Print() { - FilePrinter.writeFile(charCnt, lineCnt, outputFileName); + FilePrinter.writeFile(charCnt, wordCnt, lineCnt, outputFileName); } public static void main(String[] args) diff --git a/221801427/src/input.txt b/221801427/src/input.txt index c4418495..924715c8 100644 --- a/221801427/src/input.txt +++ b/221801427/src/input.txt @@ -2,4 +2,5 @@ abcdefg hijklm n - opqrstuvwxyz \ No newline at end of file + opqrstuvwxyz +file123;123file;file;FILE;File \ No newline at end of file diff --git a/221801427/src/lib/service/CharCounter.java b/221801427/src/lib/service/CharCounter.java index f16bf075..b4103539 100644 --- a/221801427/src/lib/service/CharCounter.java +++ b/221801427/src/lib/service/CharCounter.java @@ -8,7 +8,6 @@ public class CharCounter */ public static int countChar(String content) { - int cnt = content.length(); - return cnt; + return content.length(); } } diff --git a/221801427/src/lib/service/WordCounter.java b/221801427/src/lib/service/WordCounter.java index a4fe7db5..026e169b 100644 --- a/221801427/src/lib/service/WordCounter.java +++ b/221801427/src/lib/service/WordCounter.java @@ -1,6 +1,37 @@ package lib.service; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; + public class WordCounter { - + /** + * @param content + * @return 单词总数 + */ + public static int countWord(String content) + { + List lines = Arrays.asList(content); + Map words = lines.stream().flatMap(w -> Stream.of(w.split("\\|"))).filter(w -> + { + int i = 0; + char[] chars = w.toCharArray(); + if (w.length() >= 4) + { + for (; i < 4; i++) + { + if (!Character.isLetter(chars[i])) + return false; + } + } + else + { + return false; + } + return true; + }) + .collect(Collectors.groupingBy(w -> w, Collectors.counting())); + return words.size(); + } } diff --git a/221801427/src/lib/tool/FilePrinter.java b/221801427/src/lib/tool/FilePrinter.java index f61341ff..909e3753 100644 --- a/221801427/src/lib/tool/FilePrinter.java +++ b/221801427/src/lib/tool/FilePrinter.java @@ -4,7 +4,7 @@ public class FilePrinter { - public static void writeFile(int charCnt, int lineCnt, String fileName) + public static void writeFile(int charCnt, int wordCnt, int lineCnt, String fileName) { File file = new File(fileName); FileWriter fileWriter = null; @@ -14,6 +14,7 @@ public static void writeFile(int charCnt, int lineCnt, String fileName) BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); bufferedWriter.write("characters: " + charCnt + "\n"); + bufferedWriter.write("words: " + wordCnt + "\n"); bufferedWriter.write("lines: " + lineCnt + "\n"); bufferedWriter.flush(); bufferedWriter.close(); diff --git a/221801427/src/output.txt b/221801427/src/output.txt index 6ff5ea65..5c1e415b 100644 --- a/221801427/src/output.txt +++ b/221801427/src/output.txt @@ -1,2 +1,3 @@ -characters: 32 -lines: 3 +characters: 63 +words: 5 +lines: 4 From bec7a367f6026835ede9e0d77c3e18195ea6693f Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Sat, 27 Feb 2021 02:10:35 +0800 Subject: [PATCH 10/27] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E8=AF=8D=E9=A2=91=E5=8A=9F=E8=83=BD=EF=BC=8C=E8=BE=93?= =?UTF-8?q?=E5=87=BA=E5=8A=9F=E8=83=BD=E4=B9=9F=E5=AE=8C=E6=95=B4=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 221801427/src/WordCount.java | 7 +++- .../src/lib/service/FrequencySorter.java | 42 +++++++++++++++++++ 221801427/src/lib/service/WordCounter.java | 2 + 221801427/src/lib/tool/FilePrinter.java | 9 +++- 221801427/src/output.txt | 5 +++ 5 files changed, 63 insertions(+), 2 deletions(-) diff --git a/221801427/src/WordCount.java b/221801427/src/WordCount.java index f5aac3aa..e47b8782 100644 --- a/221801427/src/WordCount.java +++ b/221801427/src/WordCount.java @@ -6,6 +6,9 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; public class WordCount { @@ -19,6 +22,7 @@ public class WordCount private int charCnt = 0; private int wordCnt = 0; private int lineCnt = 0; + ArrayList> freqList; public WordCount(String inputFileName, String outputFileName) { @@ -57,6 +61,7 @@ public void Count() charCnt = CharCounter.countChar(content); wordCnt = WordCounter.countWord(content); + freqList = FrequencySorter.sortFrequency(content); bf.close(); isr.close(); @@ -74,7 +79,7 @@ public void Count() public void Print() { - FilePrinter.writeFile(charCnt, wordCnt, lineCnt, outputFileName); + FilePrinter.writeFile(charCnt, wordCnt, lineCnt, freqList, outputFileName); } public static void main(String[] args) diff --git a/221801427/src/lib/service/FrequencySorter.java b/221801427/src/lib/service/FrequencySorter.java index e5909c02..1fe9e765 100644 --- a/221801427/src/lib/service/FrequencySorter.java +++ b/221801427/src/lib/service/FrequencySorter.java @@ -1,6 +1,48 @@ package lib.service; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; + public class FrequencySorter { + public static final int MAX_SIZE = 10; + + public static Map getFreqMap(Map words) + { + return words.entrySet().stream() + .sorted(Map.Entry.comparingByValue().reversed().thenComparing(Map.Entry.comparingByKey())) + .limit(MAX_SIZE).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, + (oldVal, newVal) -> oldVal, LinkedHashMap::new)); + } + + public static ArrayList> sortFrequency(String content) + { + List lines = Arrays.asList(content); + Map words = lines.stream().flatMap(w -> Stream.of(w.split("\\|"))).filter(w -> + { + int i = 0; + char[] chars = w.toCharArray(); + if (w.length() >= 4) + { + for (; i < 4; i++) + { + if (!Character.isLetter(chars[i])) + { + return false; + } + } + } + else + { + return false; + } + return true; + }).collect(Collectors.groupingBy(w -> w, Collectors.counting())); + + ArrayList> freqList = new ArrayList>( + getFreqMap(words).entrySet()); + return freqList; + } } diff --git a/221801427/src/lib/service/WordCounter.java b/221801427/src/lib/service/WordCounter.java index 026e169b..5ab24c73 100644 --- a/221801427/src/lib/service/WordCounter.java +++ b/221801427/src/lib/service/WordCounter.java @@ -22,7 +22,9 @@ public static int countWord(String content) for (; i < 4; i++) { if (!Character.isLetter(chars[i])) + { return false; + } } } else diff --git a/221801427/src/lib/tool/FilePrinter.java b/221801427/src/lib/tool/FilePrinter.java index 909e3753..00055669 100644 --- a/221801427/src/lib/tool/FilePrinter.java +++ b/221801427/src/lib/tool/FilePrinter.java @@ -1,10 +1,13 @@ package lib.tool; import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; public class FilePrinter { - public static void writeFile(int charCnt, int wordCnt, int lineCnt, String fileName) + public static void writeFile(int charCnt, int wordCnt, int lineCnt, ArrayList> freqList, + String fileName) { File file = new File(fileName); FileWriter fileWriter = null; @@ -16,6 +19,10 @@ public static void writeFile(int charCnt, int wordCnt, int lineCnt, String fileN bufferedWriter.write("characters: " + charCnt + "\n"); bufferedWriter.write("words: " + wordCnt + "\n"); bufferedWriter.write("lines: " + lineCnt + "\n"); + for (HashMap.Entry map : freqList) + { + bufferedWriter.write("<" + map.getKey() + ">: " + map.getValue() + "\n"); + } bufferedWriter.flush(); bufferedWriter.close(); } diff --git a/221801427/src/output.txt b/221801427/src/output.txt index 5c1e415b..43b0690b 100644 --- a/221801427/src/output.txt +++ b/221801427/src/output.txt @@ -1,3 +1,8 @@ characters: 63 words: 5 lines: 4 +: 3 +: 1 +: 1 +: 1 +: 1 From 80cff794888d4e3e067710021b0cf6b4a952bc2a Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Sat, 27 Feb 2021 17:04:27 +0800 Subject: [PATCH 11/27] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E4=BB=A3=E7=A0=81=E8=A7=84=E8=8C=83=E4=B8=8A=E7=9A=84?= =?UTF-8?q?=E7=BB=86=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 221801427/output.txt | 3 ++ 221801427/src/WordCount.java | 34 +++++++++++-------- .../src/lib/service/FrequencySorter.java | 8 +++++ 221801427/src/lib/tool/FilePrinter.java | 11 +++++- 4 files changed, 40 insertions(+), 16 deletions(-) create mode 100644 221801427/output.txt diff --git a/221801427/output.txt b/221801427/output.txt new file mode 100644 index 00000000..65873401 --- /dev/null +++ b/221801427/output.txt @@ -0,0 +1,3 @@ +characters: 0 +words: 0 +lines: 0 diff --git a/221801427/src/WordCount.java b/221801427/src/WordCount.java index e47b8782..ef166d21 100644 --- a/221801427/src/WordCount.java +++ b/221801427/src/WordCount.java @@ -19,6 +19,7 @@ public class WordCount private static String inputFileName; private static String outputFileName; private static String content = new String(); + private static String FLITER_REGEX = "[^0-9A-Za-z]"; private int charCnt = 0; private int wordCnt = 0; private int lineCnt = 0; @@ -32,39 +33,38 @@ public WordCount(String inputFileName, String outputFileName) public void Count() { - InputStreamReader isr = null; - BufferedReader bf = null; - String line; + InputStreamReader inputStreamReader = null; + BufferedReader bufferedReader = null; + String line = null; try { - isr = new InputStreamReader(new FileInputStream(inputFileName)); - bf = new BufferedReader(isr); + inputStreamReader = new InputStreamReader(new FileInputStream(inputFileName)); + bufferedReader = new BufferedReader(inputStreamReader); StringBuffer contents = new StringBuffer(); - String regex = "[^0-9A-Za-z]"; - line = bf.readLine(); + line = bufferedReader.readLine(); while (line != null) { if (!line.equals("")) { - lineCnt++; + lineCnt++;//统计有效行数 } contents.append(line); - line = bf.readLine(); + line = bufferedReader.readLine(); if (line != null) { contents.append("\n"); } } - content = contents.toString().toLowerCase().replaceAll(regex, "|"); + content = contents.toString().toLowerCase().replaceAll(FLITER_REGEX, "|"); charCnt = CharCounter.countChar(content); wordCnt = WordCounter.countWord(content); freqList = FrequencySorter.sortFrequency(content); - bf.close(); - isr.close(); + bufferedReader.close(); + inputStreamReader.close(); } catch (FileNotFoundException e) { @@ -73,6 +73,7 @@ public void Count() } catch (IOException e) { + System.out.println("Error Reading File"); e.printStackTrace(); } } @@ -81,15 +82,18 @@ public void Print() { FilePrinter.writeFile(charCnt, wordCnt, lineCnt, freqList, outputFileName); } - + public static void main(String[] args) { - if (args.length != 2) + WordCount cmd; + /*if (args.length != 2) { System.out.println("Invalid input"); return; } - WordCount cmd = new WordCount(args[0], args[1]); + cmd = new WordCount(args[0], args[1]);*/ + cmd = new WordCount("C:\\Users\\asus\\Documents\\GitHub\\PersonalProject-Java\\221801427\\src\\input.txt", + "C:\\Users\\asus\\Documents\\GitHub\\PersonalProject-Java\\221801427\\src\\output.txt"); cmd.Count(); cmd.Print(); } diff --git a/221801427/src/lib/service/FrequencySorter.java b/221801427/src/lib/service/FrequencySorter.java index 1fe9e765..6607bad7 100644 --- a/221801427/src/lib/service/FrequencySorter.java +++ b/221801427/src/lib/service/FrequencySorter.java @@ -8,6 +8,10 @@ public class FrequencySorter { public static final int MAX_SIZE = 10; + /** + * @param words + * @return freqMap + */ public static Map getFreqMap(Map words) { return words.entrySet().stream() @@ -16,6 +20,10 @@ public static Map getFreqMap(Map words) (oldVal, newVal) -> oldVal, LinkedHashMap::new)); } + /** + * @param content + * @return freqList + */ public static ArrayList> sortFrequency(String content) { List lines = Arrays.asList(content); diff --git a/221801427/src/lib/tool/FilePrinter.java b/221801427/src/lib/tool/FilePrinter.java index 00055669..a1342a85 100644 --- a/221801427/src/lib/tool/FilePrinter.java +++ b/221801427/src/lib/tool/FilePrinter.java @@ -6,15 +6,23 @@ public class FilePrinter { + /** + * @param charCnt + * @param wordCnt + * @param lineCnt + * @param freqList + * @param fileName + */ public static void writeFile(int charCnt, int wordCnt, int lineCnt, ArrayList> freqList, String fileName) { File file = new File(fileName); FileWriter fileWriter = null; + BufferedWriter bufferedWriter = null; try { fileWriter = new FileWriter(file); - BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); + bufferedWriter = new BufferedWriter(fileWriter); bufferedWriter.write("characters: " + charCnt + "\n"); bufferedWriter.write("words: " + wordCnt + "\n"); @@ -28,6 +36,7 @@ public static void writeFile(int charCnt, int wordCnt, int lineCnt, ArrayList Date: Sat, 27 Feb 2021 17:28:26 +0800 Subject: [PATCH 12/27] =?UTF-8?q?=E6=94=B9=E7=94=A8StringBuilder=E6=8F=90?= =?UTF-8?q?=E9=AB=98=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 221801427/src/WordCount.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/221801427/src/WordCount.java b/221801427/src/WordCount.java index ef166d21..2ddf561e 100644 --- a/221801427/src/WordCount.java +++ b/221801427/src/WordCount.java @@ -8,7 +8,6 @@ import java.io.InputStreamReader; import java.util.ArrayList; import java.util.HashMap; -import java.util.Map; public class WordCount { @@ -41,7 +40,7 @@ public void Count() { inputStreamReader = new InputStreamReader(new FileInputStream(inputFileName)); bufferedReader = new BufferedReader(inputStreamReader); - StringBuffer contents = new StringBuffer(); + StringBuilder contents = new StringBuilder(); line = bufferedReader.readLine(); while (line != null) From 1a80df554f7549edd7978057d1290cc496c605f1 Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Sun, 28 Feb 2021 01:25:35 +0800 Subject: [PATCH 13/27] =?UTF-8?q?=E6=94=B9=E8=BF=9B=E4=BA=86=E9=83=A8?= =?UTF-8?q?=E5=88=86=E7=AE=97=E6=B3=95=E6=95=88=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 221801427/output.txt | 3 --- 221801427/src/WordCount.java | 26 +++++++------------ 221801427/src/input.txt | 4 +-- .../src/lib/service/FrequencySorter.java | 4 +-- 221801427/src/lib/service/WordCounter.java | 3 ++- 221801427/src/output.txt | 2 +- 6 files changed, 17 insertions(+), 25 deletions(-) delete mode 100644 221801427/output.txt diff --git a/221801427/output.txt b/221801427/output.txt deleted file mode 100644 index 65873401..00000000 --- a/221801427/output.txt +++ /dev/null @@ -1,3 +0,0 @@ -characters: 0 -words: 0 -lines: 0 diff --git a/221801427/src/WordCount.java b/221801427/src/WordCount.java index 2ddf561e..16221fcc 100644 --- a/221801427/src/WordCount.java +++ b/221801427/src/WordCount.java @@ -18,10 +18,11 @@ public class WordCount private static String inputFileName; private static String outputFileName; private static String content = new String(); - private static String FLITER_REGEX = "[^0-9A-Za-z]"; + // private static String FLITER_REGEX = "[^0-9A-Za-z]"; private int charCnt = 0; private int wordCnt = 0; private int lineCnt = 0; + //private int invalidLineCnt = 0; ArrayList> freqList; public WordCount(String inputFileName, String outputFileName) @@ -42,21 +43,16 @@ public void Count() bufferedReader = new BufferedReader(inputStreamReader); StringBuilder contents = new StringBuilder(); - line = bufferedReader.readLine(); - while (line != null) + while ((line = bufferedReader.readLine()) != null) { - if (!line.equals("")) + if (!line.trim().equals("")) { - lineCnt++;//统计有效行数 + lineCnt++;// 统计有效行数 } contents.append(line); - line = bufferedReader.readLine(); - if (line != null) - { - contents.append("\n"); - } + contents.append("\n"); } - content = contents.toString().toLowerCase().replaceAll(FLITER_REGEX, "|"); + content = contents.toString().toLowerCase(); charCnt = CharCounter.countChar(content); wordCnt = WordCounter.countWord(content); @@ -81,18 +77,16 @@ public void Print() { FilePrinter.writeFile(charCnt, wordCnt, lineCnt, freqList, outputFileName); } - + public static void main(String[] args) { WordCount cmd; - /*if (args.length != 2) + if (args.length != 2) { System.out.println("Invalid input"); return; } - cmd = new WordCount(args[0], args[1]);*/ - cmd = new WordCount("C:\\Users\\asus\\Documents\\GitHub\\PersonalProject-Java\\221801427\\src\\input.txt", - "C:\\Users\\asus\\Documents\\GitHub\\PersonalProject-Java\\221801427\\src\\output.txt"); + cmd = new WordCount(args[0], args[1]); cmd.Count(); cmd.Print(); } diff --git a/221801427/src/input.txt b/221801427/src/input.txt index 924715c8..398a34c3 100644 --- a/221801427/src/input.txt +++ b/221801427/src/input.txt @@ -1,6 +1,6 @@ abcdefg hijklm n - + opqrstuvwxyz -file123;123file;file;FILE;File \ No newline at end of file +file123;123file;file;FILE;File diff --git a/221801427/src/lib/service/FrequencySorter.java b/221801427/src/lib/service/FrequencySorter.java index 6607bad7..10dd47c9 100644 --- a/221801427/src/lib/service/FrequencySorter.java +++ b/221801427/src/lib/service/FrequencySorter.java @@ -7,7 +7,7 @@ public class FrequencySorter { public static final int MAX_SIZE = 10; - + private static String FLITER_REGEX = "[^0-9A-Za-z]"; /** * @param words * @return freqMap @@ -27,7 +27,7 @@ public static Map getFreqMap(Map words) public static ArrayList> sortFrequency(String content) { List lines = Arrays.asList(content); - Map words = lines.stream().flatMap(w -> Stream.of(w.split("\\|"))).filter(w -> + Map words = lines.stream().flatMap(w -> Stream.of(w.split(FLITER_REGEX))).filter(w -> { int i = 0; char[] chars = w.toCharArray(); diff --git a/221801427/src/lib/service/WordCounter.java b/221801427/src/lib/service/WordCounter.java index 5ab24c73..7f8154bd 100644 --- a/221801427/src/lib/service/WordCounter.java +++ b/221801427/src/lib/service/WordCounter.java @@ -6,6 +6,7 @@ public class WordCounter { + private static String FLITER_REGEX = "[^0-9A-Za-z]"; /** * @param content * @return 单词总数 @@ -13,7 +14,7 @@ public class WordCounter public static int countWord(String content) { List lines = Arrays.asList(content); - Map words = lines.stream().flatMap(w -> Stream.of(w.split("\\|"))).filter(w -> + Map words = lines.stream().flatMap(w -> Stream.of(w.split(FLITER_REGEX))).filter(w -> { int i = 0; char[] chars = w.toCharArray(); diff --git a/221801427/src/output.txt b/221801427/src/output.txt index 43b0690b..cf440067 100644 --- a/221801427/src/output.txt +++ b/221801427/src/output.txt @@ -1,4 +1,4 @@ -characters: 63 +characters: 65 words: 5 lines: 4 : 3 From c5a071dd8c75ae3e31653b79b17cb9b0eebe4636 Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Sun, 28 Feb 2021 15:16:29 +0800 Subject: [PATCH 14/27] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E7=AE=97=E6=B3=95=E4=B8=8E=E8=AE=A1=E7=AE=97=E8=A1=8C?= =?UTF-8?q?=E6=95=B0=E7=AE=97=E6=B3=95=E4=BB=A5=E9=80=82=E5=BA=94=E8=AF=BB?= =?UTF-8?q?=E5=8F=96\r=E7=9A=84=E9=9C=80=E8=A6=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 221801427/src/WordCount.java | 16 +++++-------- 221801427/src/lib/service/LineCounter.java | 27 ++++++++++++++++++++++ 221801427/src/output.txt | 2 +- 3 files changed, 34 insertions(+), 11 deletions(-) create mode 100644 221801427/src/lib/service/LineCounter.java diff --git a/221801427/src/WordCount.java b/221801427/src/WordCount.java index 16221fcc..d8efe273 100644 --- a/221801427/src/WordCount.java +++ b/221801427/src/WordCount.java @@ -18,11 +18,11 @@ public class WordCount private static String inputFileName; private static String outputFileName; private static String content = new String(); - // private static String FLITER_REGEX = "[^0-9A-Za-z]"; + private int charCnt = 0; private int wordCnt = 0; private int lineCnt = 0; - //private int invalidLineCnt = 0; + ArrayList> freqList; public WordCount(String inputFileName, String outputFileName) @@ -35,7 +35,6 @@ public void Count() { InputStreamReader inputStreamReader = null; BufferedReader bufferedReader = null; - String line = null; try { @@ -43,18 +42,15 @@ public void Count() bufferedReader = new BufferedReader(inputStreamReader); StringBuilder contents = new StringBuilder(); - while ((line = bufferedReader.readLine()) != null) + int in; + while ((in = bufferedReader.read()) != -1) { - if (!line.trim().equals("")) - { - lineCnt++;// 统计有效行数 - } - contents.append(line); - contents.append("\n"); + contents.append((char) in); } content = contents.toString().toLowerCase(); charCnt = CharCounter.countChar(content); + lineCnt = LineCounter.countLine(content); wordCnt = WordCounter.countWord(content); freqList = FrequencySorter.sortFrequency(content); diff --git a/221801427/src/lib/service/LineCounter.java b/221801427/src/lib/service/LineCounter.java new file mode 100644 index 00000000..579408b0 --- /dev/null +++ b/221801427/src/lib/service/LineCounter.java @@ -0,0 +1,27 @@ +package lib.service; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class LineCounter +{ + private static String Valid_Line_REGEX = "(^|\n)\\s*\\S+"; + private static Pattern ValidLinePattern = Pattern.compile(Valid_Line_REGEX); + + /** + * @param content + * @return 有效行数 + */ + public static int countLine(String content) + { + int cnt = 0; + Matcher matcher; + + matcher = ValidLinePattern.matcher(content); + while (matcher.find()) + { + cnt++; + } + return cnt; + } +} diff --git a/221801427/src/output.txt b/221801427/src/output.txt index cf440067..dd59db7a 100644 --- a/221801427/src/output.txt +++ b/221801427/src/output.txt @@ -1,4 +1,4 @@ -characters: 65 +characters: 71 words: 5 lines: 4 : 3 From f4d5396e29f1263ad1b515344b1413afdaa98a56 Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Sun, 28 Feb 2021 15:40:30 +0800 Subject: [PATCH 15/27] =?UTF-8?q?=E8=BE=93=E5=87=BA=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=EF=BC=8C=E7=BB=86=E8=8A=82=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 221801427/src/lib/service/FrequencySorter.java | 4 ++-- 221801427/src/lib/service/LineCounter.java | 6 +++--- 221801427/src/lib/service/WordCounter.java | 4 ++-- 221801427/src/lib/tool/FilePrinter.java | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/221801427/src/lib/service/FrequencySorter.java b/221801427/src/lib/service/FrequencySorter.java index 10dd47c9..8dc1f3df 100644 --- a/221801427/src/lib/service/FrequencySorter.java +++ b/221801427/src/lib/service/FrequencySorter.java @@ -7,7 +7,7 @@ public class FrequencySorter { public static final int MAX_SIZE = 10; - private static String FLITER_REGEX = "[^0-9A-Za-z]"; + private static String INVALID_TOKEN_REGEX = "[^0-9A-Za-z]"; /** * @param words * @return freqMap @@ -27,7 +27,7 @@ public static Map getFreqMap(Map words) public static ArrayList> sortFrequency(String content) { List lines = Arrays.asList(content); - Map words = lines.stream().flatMap(w -> Stream.of(w.split(FLITER_REGEX))).filter(w -> + Map words = lines.stream().flatMap(w -> Stream.of(w.split(INVALID_TOKEN_REGEX))).filter(w -> { int i = 0; char[] chars = w.toCharArray(); diff --git a/221801427/src/lib/service/LineCounter.java b/221801427/src/lib/service/LineCounter.java index 579408b0..8afb30f3 100644 --- a/221801427/src/lib/service/LineCounter.java +++ b/221801427/src/lib/service/LineCounter.java @@ -5,8 +5,8 @@ public class LineCounter { - private static String Valid_Line_REGEX = "(^|\n)\\s*\\S+"; - private static Pattern ValidLinePattern = Pattern.compile(Valid_Line_REGEX); + private static String VALID_LINE_REGEX = "(^|\n)\\s*\\S+"; + private static Pattern VALID_LINE_PATTERN = Pattern.compile(VALID_LINE_REGEX); /** * @param content @@ -17,7 +17,7 @@ public static int countLine(String content) int cnt = 0; Matcher matcher; - matcher = ValidLinePattern.matcher(content); + matcher = VALID_LINE_PATTERN.matcher(content); while (matcher.find()) { cnt++; diff --git a/221801427/src/lib/service/WordCounter.java b/221801427/src/lib/service/WordCounter.java index 7f8154bd..e12518b6 100644 --- a/221801427/src/lib/service/WordCounter.java +++ b/221801427/src/lib/service/WordCounter.java @@ -6,7 +6,7 @@ public class WordCounter { - private static String FLITER_REGEX = "[^0-9A-Za-z]"; + private static String INVALID_WORD_REGEX = "[^0-9A-Za-z]"; /** * @param content * @return 单词总数 @@ -14,7 +14,7 @@ public class WordCounter public static int countWord(String content) { List lines = Arrays.asList(content); - Map words = lines.stream().flatMap(w -> Stream.of(w.split(FLITER_REGEX))).filter(w -> + Map words = lines.stream().flatMap(w -> Stream.of(w.split(INVALID_WORD_REGEX))).filter(w -> { int i = 0; char[] chars = w.toCharArray(); diff --git a/221801427/src/lib/tool/FilePrinter.java b/221801427/src/lib/tool/FilePrinter.java index a1342a85..fb9052e6 100644 --- a/221801427/src/lib/tool/FilePrinter.java +++ b/221801427/src/lib/tool/FilePrinter.java @@ -29,7 +29,7 @@ public static void writeFile(int charCnt, int wordCnt, int lineCnt, ArrayList map : freqList) { - bufferedWriter.write("<" + map.getKey() + ">: " + map.getValue() + "\n"); + bufferedWriter.write(map.getKey() + ": " + map.getValue() + "\n"); } bufferedWriter.flush(); bufferedWriter.close(); From 150b6f2da4ef79b32a59384589e1bd1b20bd9e9e Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Sun, 28 Feb 2021 16:29:46 +0800 Subject: [PATCH 16/27] =?UTF-8?q?=E6=8F=90=E5=8F=96=E4=BA=86=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E5=AD=97=E7=AC=A6=E4=B8=B2=E5=B9=B6=E6=8B=86=E5=88=86?= =?UTF-8?q?=E4=B8=BA=E6=9C=89=E6=95=88=E5=8D=95=E8=AF=8DMap=E7=9A=84?= =?UTF-8?q?=E6=96=B9=E6=B3=95=EF=BC=8C=E6=8F=90=E9=AB=98=E6=95=88=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 221801427/src/WordCount.java | 7 +++- .../src/lib/service/FrequencySorter.java | 26 +----------- 221801427/src/lib/service/StringAnalyser.java | 40 +++++++++++++++++++ 221801427/src/lib/service/WordCounter.java | 27 +------------ 221801427/src/output.txt | 10 ++--- 5 files changed, 52 insertions(+), 58 deletions(-) create mode 100644 221801427/src/lib/service/StringAnalyser.java diff --git a/221801427/src/WordCount.java b/221801427/src/WordCount.java index d8efe273..449c2e53 100644 --- a/221801427/src/WordCount.java +++ b/221801427/src/WordCount.java @@ -8,6 +8,7 @@ import java.io.InputStreamReader; import java.util.ArrayList; import java.util.HashMap; +import java.util.Map; public class WordCount { @@ -41,6 +42,7 @@ public void Count() inputStreamReader = new InputStreamReader(new FileInputStream(inputFileName)); bufferedReader = new BufferedReader(inputStreamReader); StringBuilder contents = new StringBuilder(); + Map words; int in; while ((in = bufferedReader.read()) != -1) @@ -51,8 +53,9 @@ public void Count() charCnt = CharCounter.countChar(content); lineCnt = LineCounter.countLine(content); - wordCnt = WordCounter.countWord(content); - freqList = FrequencySorter.sortFrequency(content); + words = StringAnalyser.analyseString(content); + wordCnt = WordCounter.countWord(words); + freqList = FrequencySorter.sortFrequency(words); bufferedReader.close(); inputStreamReader.close(); diff --git a/221801427/src/lib/service/FrequencySorter.java b/221801427/src/lib/service/FrequencySorter.java index 8dc1f3df..bdcca3e3 100644 --- a/221801427/src/lib/service/FrequencySorter.java +++ b/221801427/src/lib/service/FrequencySorter.java @@ -2,12 +2,10 @@ import java.util.*; import java.util.stream.Collectors; -import java.util.stream.Stream; public class FrequencySorter { public static final int MAX_SIZE = 10; - private static String INVALID_TOKEN_REGEX = "[^0-9A-Za-z]"; /** * @param words * @return freqMap @@ -24,30 +22,8 @@ public static Map getFreqMap(Map words) * @param content * @return freqList */ - public static ArrayList> sortFrequency(String content) + public static ArrayList> sortFrequency(Map words) { - List lines = Arrays.asList(content); - Map words = lines.stream().flatMap(w -> Stream.of(w.split(INVALID_TOKEN_REGEX))).filter(w -> - { - int i = 0; - char[] chars = w.toCharArray(); - if (w.length() >= 4) - { - for (; i < 4; i++) - { - if (!Character.isLetter(chars[i])) - { - return false; - } - } - } - else - { - return false; - } - return true; - }).collect(Collectors.groupingBy(w -> w, Collectors.counting())); - ArrayList> freqList = new ArrayList>( getFreqMap(words).entrySet()); diff --git a/221801427/src/lib/service/StringAnalyser.java b/221801427/src/lib/service/StringAnalyser.java new file mode 100644 index 00000000..d21182db --- /dev/null +++ b/221801427/src/lib/service/StringAnalyser.java @@ -0,0 +1,40 @@ +package lib.service; + +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class StringAnalyser +{ + private static String INVALID_WORD_REGEX = "[^0-9A-Za-z]"; + + /** + * @param content + * @return words + */ + public static Map analyseString(String content) + { + List list = Arrays.asList(content); + Map words = list.stream().flatMap(w -> Stream.of(w.split(INVALID_WORD_REGEX))).filter(w -> + { + int i = 0; + char[] chars = w.toCharArray(); + if (w.length() >= 4) + { + for (; i < 4; i++) + { + if (!Character.isLetter(chars[i])) + { + return false; + } + } + } + else + { + return false; + } + return true; + }).collect(Collectors.groupingBy(w -> w, Collectors.counting())); + return words; + } +} diff --git a/221801427/src/lib/service/WordCounter.java b/221801427/src/lib/service/WordCounter.java index e12518b6..82160c11 100644 --- a/221801427/src/lib/service/WordCounter.java +++ b/221801427/src/lib/service/WordCounter.java @@ -1,40 +1,15 @@ package lib.service; import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; public class WordCounter { - private static String INVALID_WORD_REGEX = "[^0-9A-Za-z]"; /** * @param content * @return 单词总数 */ - public static int countWord(String content) + public static int countWord(Map words) { - List lines = Arrays.asList(content); - Map words = lines.stream().flatMap(w -> Stream.of(w.split(INVALID_WORD_REGEX))).filter(w -> - { - int i = 0; - char[] chars = w.toCharArray(); - if (w.length() >= 4) - { - for (; i < 4; i++) - { - if (!Character.isLetter(chars[i])) - { - return false; - } - } - } - else - { - return false; - } - return true; - }) - .collect(Collectors.groupingBy(w -> w, Collectors.counting())); return words.size(); } } diff --git a/221801427/src/output.txt b/221801427/src/output.txt index dd59db7a..e587c0ea 100644 --- a/221801427/src/output.txt +++ b/221801427/src/output.txt @@ -1,8 +1,8 @@ characters: 71 words: 5 lines: 4 -: 3 -: 1 -: 1 -: 1 -: 1 +file: 3 +abcdefg: 1 +file123: 1 +hijklm: 1 +opqrstuvwxyz: 1 From eb4c651d523933525157d6cb6cf0a1e4187a58ae Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Thu, 4 Mar 2021 18:09:29 +0800 Subject: [PATCH 17/27] =?UTF-8?q?=E8=AF=BB=E5=8F=96=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E5=BC=8F=E6=94=B9=E7=94=A8NIO=E4=BB=A5?= =?UTF-8?q?=E6=8F=90=E5=8D=87=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 221801427/src/WordCount.java | 43 +++---------- 221801427/src/lib/service/CharCounter.java | 2 +- .../src/lib/service/FrequencySorter.java | 18 ++---- 221801427/src/lib/service/WordCounter.java | 2 +- 221801427/src/lib/tool/FilePrinter.java | 6 +- 221801427/src/lib/tool/FileReader.java | 60 +++++++++++++++++++ 6 files changed, 79 insertions(+), 52 deletions(-) create mode 100644 221801427/src/lib/tool/FileReader.java diff --git a/221801427/src/WordCount.java b/221801427/src/WordCount.java index 449c2e53..ee2d8085 100644 --- a/221801427/src/WordCount.java +++ b/221801427/src/WordCount.java @@ -18,7 +18,6 @@ public class WordCount */ private static String inputFileName; private static String outputFileName; - private static String content = new String(); private int charCnt = 0; private int wordCnt = 0; @@ -34,42 +33,16 @@ public WordCount(String inputFileName, String outputFileName) public void Count() { - InputStreamReader inputStreamReader = null; - BufferedReader bufferedReader = null; + String content = new String(); + Map words; - try - { - inputStreamReader = new InputStreamReader(new FileInputStream(inputFileName)); - bufferedReader = new BufferedReader(inputStreamReader); - StringBuilder contents = new StringBuilder(); - Map words; - - int in; - while ((in = bufferedReader.read()) != -1) - { - contents.append((char) in); - } - content = contents.toString().toLowerCase(); + content = FileReader.readFile(inputFileName); + charCnt = CharCounter.countChar(content); + lineCnt = LineCounter.countLine(content); - charCnt = CharCounter.countChar(content); - lineCnt = LineCounter.countLine(content); - words = StringAnalyser.analyseString(content); - wordCnt = WordCounter.countWord(words); - freqList = FrequencySorter.sortFrequency(words); - - bufferedReader.close(); - inputStreamReader.close(); - } - catch (FileNotFoundException e) - { - System.out.println("File Not Found"); - e.printStackTrace(); - } - catch (IOException e) - { - System.out.println("Error Reading File"); - e.printStackTrace(); - } + words = StringAnalyser.analyseString(content); + wordCnt = WordCounter.countWord(words); + freqList = FrequencySorter.sortFrequency(words); } public void Print() diff --git a/221801427/src/lib/service/CharCounter.java b/221801427/src/lib/service/CharCounter.java index b4103539..16628bdc 100644 --- a/221801427/src/lib/service/CharCounter.java +++ b/221801427/src/lib/service/CharCounter.java @@ -3,7 +3,7 @@ public class CharCounter { /** - * @param fileName + * @param content * @return 字符总数 */ public static int countChar(String content) diff --git a/221801427/src/lib/service/FrequencySorter.java b/221801427/src/lib/service/FrequencySorter.java index bdcca3e3..299ea7fe 100644 --- a/221801427/src/lib/service/FrequencySorter.java +++ b/221801427/src/lib/service/FrequencySorter.java @@ -6,26 +6,20 @@ public class FrequencySorter { public static final int MAX_SIZE = 10; + /** * @param words - * @return freqMap + * @return freqList */ - public static Map getFreqMap(Map words) + public static ArrayList> sortFrequency(Map words) { - return words.entrySet().stream() + words = words.entrySet().stream() .sorted(Map.Entry.comparingByValue().reversed().thenComparing(Map.Entry.comparingByKey())) .limit(MAX_SIZE).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldVal, newVal) -> oldVal, LinkedHashMap::new)); - } - - /** - * @param content - * @return freqList - */ - public static ArrayList> sortFrequency(Map words) - { + ArrayList> freqList = new ArrayList>( - getFreqMap(words).entrySet()); + words.entrySet()); return freqList; } diff --git a/221801427/src/lib/service/WordCounter.java b/221801427/src/lib/service/WordCounter.java index 82160c11..3aee386b 100644 --- a/221801427/src/lib/service/WordCounter.java +++ b/221801427/src/lib/service/WordCounter.java @@ -5,7 +5,7 @@ public class WordCounter { /** - * @param content + * @param words * @return 单词总数 */ public static int countWord(Map words) diff --git a/221801427/src/lib/tool/FilePrinter.java b/221801427/src/lib/tool/FilePrinter.java index fb9052e6..64cab5c9 100644 --- a/221801427/src/lib/tool/FilePrinter.java +++ b/221801427/src/lib/tool/FilePrinter.java @@ -11,12 +11,12 @@ public class FilePrinter * @param wordCnt * @param lineCnt * @param freqList - * @param fileName + * @param outputFileName */ public static void writeFile(int charCnt, int wordCnt, int lineCnt, ArrayList> freqList, - String fileName) + String outputFileName) { - File file = new File(fileName); + File file = new File(outputFileName); FileWriter fileWriter = null; BufferedWriter bufferedWriter = null; try diff --git a/221801427/src/lib/tool/FileReader.java b/221801427/src/lib/tool/FileReader.java new file mode 100644 index 00000000..c5f522d6 --- /dev/null +++ b/221801427/src/lib/tool/FileReader.java @@ -0,0 +1,60 @@ +package lib.tool; + +import java.io.*; +import java.nio.*; +import java.nio.channels.FileChannel; +import java.nio.charset.StandardCharsets; + +import sun.misc.Cleaner; +import sun.nio.ch.DirectBuffer; + +public class FileReader +{ + /** + * @param inputFileName + * @return 读取出的字符串 + */ + @SuppressWarnings("resource") + public static String readFile(String inputFileName) + { + File file = new File(inputFileName); + long len = file.length(); + MappedByteBuffer mappedByteBuffer = null; + + try + { + mappedByteBuffer = new RandomAccessFile(file, "r").getChannel() + .map(FileChannel.MapMode.READ_ONLY, 0, len); + if (mappedByteBuffer != null) + { + return StandardCharsets.UTF_8.decode(mappedByteBuffer).toString().toLowerCase(); + } + else + { + return ""; + } + } + catch (FileNotFoundException e) + { + System.out.println("File Not Found"); + e.printStackTrace(); + } + catch (IOException e) + { + System.out.println("Error Reading File"); + e.printStackTrace(); + } + finally + { + if (mappedByteBuffer != null) + { + Cleaner cleaner = ((DirectBuffer) mappedByteBuffer).cleaner(); + if (cleaner != null) + { + cleaner.clean(); + } + } + } + return ""; + } +} From b504f6aa31b906d376a8df0d96d9bf4a478d8b11 Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Thu, 4 Mar 2021 23:37:09 +0800 Subject: [PATCH 18/27] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BA=86=E6=80=A7?= =?UTF-8?q?=E8=83=BD=EF=BC=9A=E9=87=87=E7=94=A8StringTokenizer=E5=88=86?= =?UTF-8?q?=E5=89=B2=E5=AD=97=E7=AC=A6=E4=B8=B2=EF=BC=8C=E9=87=87=E7=94=A8?= =?UTF-8?q?=E5=A4=9A=E7=BA=BF=E7=A8=8B=EF=BC=9B=E5=88=A0=E5=8E=BB=E4=BA=86?= =?UTF-8?q?=E4=B8=8D=E5=BF=85=E8=A6=81=E7=9A=84=E5=AF=BC=E5=85=A5=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 221801427/src/WordCount.java | 75 ++++++++++++------- .../src/lib/service/FrequencySorter.java | 11 ++- 221801427/src/lib/service/LineCounter.java | 4 +- 221801427/src/lib/service/StringAnalyser.java | 43 +++++------ 221801427/src/lib/service/WordCounter.java | 2 +- 221801427/src/lib/tool/FilePrinter.java | 4 +- 221801427/src/lib/tool/FileReader.java | 3 +- 7 files changed, 85 insertions(+), 57 deletions(-) diff --git a/221801427/src/WordCount.java b/221801427/src/WordCount.java index ee2d8085..efad86b8 100644 --- a/221801427/src/WordCount.java +++ b/221801427/src/WordCount.java @@ -1,14 +1,13 @@ import lib.service.*; import lib.tool.*; -import java.io.BufferedReader; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStreamReader; import java.util.ArrayList; import java.util.HashMap; -import java.util.Map; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; public class WordCount { @@ -19,12 +18,6 @@ public class WordCount private static String inputFileName; private static String outputFileName; - private int charCnt = 0; - private int wordCnt = 0; - private int lineCnt = 0; - - ArrayList> freqList; - public WordCount(String inputFileName, String outputFileName) { WordCount.inputFileName = inputFileName; @@ -33,21 +26,54 @@ public WordCount(String inputFileName, String outputFileName) public void Count() { - String content = new String(); - Map words; + final String content = FileReader.readFile(inputFileName); + HashMap words; + words = StringAnalyser.analyseString(content); - content = FileReader.readFile(inputFileName); - charCnt = CharCounter.countChar(content); - lineCnt = LineCounter.countLine(content); + ExecutorService executor = Executors.newCachedThreadPool(); - words = StringAnalyser.analyseString(content); - wordCnt = WordCounter.countWord(words); - freqList = FrequencySorter.sortFrequency(words); - } + Future charCnt = executor.submit(new Callable() + { + public Integer call() + { + return CharCounter.countChar(content); + } + }); - public void Print() - { - FilePrinter.writeFile(charCnt, wordCnt, lineCnt, freqList, outputFileName); + Future lineCnt = executor.submit(new Callable() + { + public Integer call() + { + return LineCounter.countLine(content); + } + }); + + Future wordCnt = executor.submit(new Callable() + { + public Integer call() + { + return WordCounter.countWord(words); + } + }); + + Future>> freqList = executor + .submit(new Callable>>() + { + public ArrayList> call() + { + return FrequencySorter.sortFrequency(words); + } + }); + + try + { + FilePrinter.writeFile(charCnt.get(), wordCnt.get(), lineCnt.get(), freqList.get(), outputFileName); + executor.shutdown(); + } + catch (InterruptedException | ExecutionException e) + { + e.printStackTrace(); + } } public static void main(String[] args) @@ -60,6 +86,5 @@ public static void main(String[] args) } cmd = new WordCount(args[0], args[1]); cmd.Count(); - cmd.Print(); } } diff --git a/221801427/src/lib/service/FrequencySorter.java b/221801427/src/lib/service/FrequencySorter.java index 299ea7fe..bbd7dc3c 100644 --- a/221801427/src/lib/service/FrequencySorter.java +++ b/221801427/src/lib/service/FrequencySorter.java @@ -11,14 +11,17 @@ public class FrequencySorter * @param words * @return freqList */ - public static ArrayList> sortFrequency(Map words) + public static ArrayList> sortFrequency(HashMap words) { words = words.entrySet().stream() - .sorted(Map.Entry.comparingByValue().reversed().thenComparing(Map.Entry.comparingByKey())) - .limit(MAX_SIZE).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, + .sorted(Map.Entry.comparingByValue() + .reversed() + .thenComparing(Map.Entry.comparingByKey())) + .limit(MAX_SIZE) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldVal, newVal) -> oldVal, LinkedHashMap::new)); - ArrayList> freqList = new ArrayList>( + ArrayList> freqList = new ArrayList>( words.entrySet()); return freqList; diff --git a/221801427/src/lib/service/LineCounter.java b/221801427/src/lib/service/LineCounter.java index 8afb30f3..ae4f4375 100644 --- a/221801427/src/lib/service/LineCounter.java +++ b/221801427/src/lib/service/LineCounter.java @@ -5,8 +5,8 @@ public class LineCounter { - private static String VALID_LINE_REGEX = "(^|\n)\\s*\\S+"; - private static Pattern VALID_LINE_PATTERN = Pattern.compile(VALID_LINE_REGEX); + private static final String VALID_LINE_REGEX = "(^|\n)\\s*\\S+"; + private static final Pattern VALID_LINE_PATTERN = Pattern.compile(VALID_LINE_REGEX); /** * @param content diff --git a/221801427/src/lib/service/StringAnalyser.java b/221801427/src/lib/service/StringAnalyser.java index d21182db..ab76da6c 100644 --- a/221801427/src/lib/service/StringAnalyser.java +++ b/221801427/src/lib/service/StringAnalyser.java @@ -1,40 +1,41 @@ package lib.service; import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; +import java.util.regex.Pattern; public class StringAnalyser { - private static String INVALID_WORD_REGEX = "[^0-9A-Za-z]"; + private static final String INVALID_WORD_REGEX = "[^0-9A-Za-z]"; + private static final String VALID_WORD_REGEX = "[a-z]{4}[0-9a-z]*"; /** * @param content * @return words */ - public static Map analyseString(String content) - { - List list = Arrays.asList(content); - Map words = list.stream().flatMap(w -> Stream.of(w.split(INVALID_WORD_REGEX))).filter(w -> + public static HashMap analyseString(String content) + { + int cnt; + String word; + + HashMap words = new HashMap(); + StringTokenizer tokenizer = new StringTokenizer(content.replaceAll(INVALID_WORD_REGEX, " ")); + + while (tokenizer.hasMoreTokens()) { - int i = 0; - char[] chars = w.toCharArray(); - if (w.length() >= 4) + word = tokenizer.nextToken(" "); + if (Pattern.matches(VALID_WORD_REGEX, word)) { - for (; i < 4; i++) + if (words.containsKey(word)) { - if (!Character.isLetter(chars[i])) - { - return false; - } + cnt = words.get(word); + words.put(word, cnt + 1); + } + else + { + words.put(word, 1); } } - else - { - return false; - } - return true; - }).collect(Collectors.groupingBy(w -> w, Collectors.counting())); + } return words; } } diff --git a/221801427/src/lib/service/WordCounter.java b/221801427/src/lib/service/WordCounter.java index 3aee386b..1faf663b 100644 --- a/221801427/src/lib/service/WordCounter.java +++ b/221801427/src/lib/service/WordCounter.java @@ -8,7 +8,7 @@ public class WordCounter * @param words * @return 单词总数 */ - public static int countWord(Map words) + public static int countWord(HashMap words) { return words.size(); } diff --git a/221801427/src/lib/tool/FilePrinter.java b/221801427/src/lib/tool/FilePrinter.java index 64cab5c9..4e4ad3fa 100644 --- a/221801427/src/lib/tool/FilePrinter.java +++ b/221801427/src/lib/tool/FilePrinter.java @@ -13,7 +13,7 @@ public class FilePrinter * @param freqList * @param outputFileName */ - public static void writeFile(int charCnt, int wordCnt, int lineCnt, ArrayList> freqList, + public static void writeFile(int charCnt, int wordCnt, int lineCnt, ArrayList> freqList, String outputFileName) { File file = new File(outputFileName); @@ -27,7 +27,7 @@ public static void writeFile(int charCnt, int wordCnt, int lineCnt, ArrayList map : freqList) + for (HashMap.Entry map : freqList) { bufferedWriter.write(map.getKey() + ": " + map.getValue() + "\n"); } diff --git a/221801427/src/lib/tool/FileReader.java b/221801427/src/lib/tool/FileReader.java index c5f522d6..b1793645 100644 --- a/221801427/src/lib/tool/FileReader.java +++ b/221801427/src/lib/tool/FileReader.java @@ -23,8 +23,7 @@ public static String readFile(String inputFileName) try { - mappedByteBuffer = new RandomAccessFile(file, "r").getChannel() - .map(FileChannel.MapMode.READ_ONLY, 0, len); + mappedByteBuffer = new RandomAccessFile(file, "r").getChannel().map(FileChannel.MapMode.READ_ONLY, 0, len); if (mappedByteBuffer != null) { return StandardCharsets.UTF_8.decode(mappedByteBuffer).toString().toLowerCase(); From 8b4fec55f9facd84b3645d66b6116ca84dc66711 Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Fri, 5 Mar 2021 11:42:53 +0800 Subject: [PATCH 19/27] =?UTF-8?q?=E5=90=88=E5=B9=B6=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=E6=95=B0=E4=B8=8E=E5=8D=95=E8=AF=8D=E6=95=B0?= =?UTF-8?q?=E7=9A=84=E7=B1=BB=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= =?UTF-8?q?=E4=B8=8EREADME=E6=96=87=E6=9C=AC=EF=BC=8C=E6=9B=B4=E6=94=B9?= =?UTF-8?q?=E7=BC=96=E7=A0=81=E6=A8=A1=E5=BC=8F=E4=B8=BAUTF-8=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E6=8F=90=E4=BA=A4=E6=97=B6=E7=9A=84=E4=B9=B1=E7=A0=81?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 221801427/README.md | 80 +++++++++++++++++++ 221801427/src/WordCount.java | 21 +++-- .../src/lib/service/CharAndWordCounter.java | 24 ++++++ 221801427/src/lib/service/CharCounter.java | 13 --- .../src/lib/service/FrequencySorter.java | 10 +-- 221801427/src/lib/service/LineCounter.java | 3 +- 221801427/src/lib/service/StringAnalyser.java | 16 ++-- 221801427/src/lib/service/WordCounter.java | 15 ---- 221801427/src/lib/tool/FilePrinter.java | 15 +++- 221801427/src/lib/tool/FileReader.java | 11 ++- example/README.md | 0 example/codestyle.md | 0 example/src/WordCount.java | 0 13 files changed, 152 insertions(+), 56 deletions(-) create mode 100644 221801427/src/lib/service/CharAndWordCounter.java delete mode 100644 221801427/src/lib/service/CharCounter.java delete mode 100644 221801427/src/lib/service/WordCounter.java create mode 100644 example/README.md create mode 100644 example/codestyle.md create mode 100644 example/src/WordCount.java diff --git a/221801427/README.md b/221801427/README.md index e69de29b..5cf7db22 100644 --- a/221801427/README.md +++ b/221801427/README.md @@ -0,0 +1,80 @@ +锘# PersonalProject-Java + + +---------- + + +## 鍔熻兘绠浠 +杈撳叆鑻辨枃鏂囨湰锛堝彧鑰冭檻Ascii鐮侊紝姹夊瓧涓嶉渶鑰冭檻锛 +
1. 缁熻瀛楃鏁帮紙绌烘牸锛屾按骞冲埗琛ㄧ锛屾崲琛岀锛屽潎绠楀瓧绗︼級 + 2. 缁熻鏈夋晥琛屾暟锛堜换浣曞寘鍚潪绌虹櫧瀛楃鐨勮锛岄兘闇瑕佺粺璁★級 + 3. 缁熻鍗曡瘝鏁帮紙鑷冲皯浠4涓嫳鏂囧瓧姣嶅紑澶达紝璺熶笂瀛楁瘝鏁板瓧绗﹀彿锛屽崟璇嶄互鍒嗛殧绗﹀垎鍓诧紝涓嶅尯鍒嗗ぇ灏忓啓) + 4. 缁熻棰戠巼鏈楂樼殑10涓崟璇嶇殑鍑虹幇娆℃暟锛堝奸檷搴忥紝閿瓧鍏稿簭锛 +
鎸変互涓婇『搴忛愯鎵撳嵃鑷宠緭鍑烘枃鏈紝杈撳嚭鐨勬牸寮忓涓 + +> characters: number
+words: number
+lines: number
+word1: number
+word2: number
+... + + +---------- + + +## 杩愯鏂瑰紡 +杩愯cmd + + javac WordCount.java + java WordCount input.txt output.txt + + +---------- + + +## 浣滀笟閾炬帴 +[瀵掑亣浣滀笟(2/2) 浣滀笟瑕佹眰](https://edu.cnblogs.com/campus/fzu/2021SpringSoftwareEngineeringPractice/homework/11740) + + +---------- + + +## 鍗氬閾炬帴 +[鎴戠殑鍗氬](https://www.cnblogs.com/railgunSE/) + + +---------- + + +## 绛惧叆璁板綍 +### 绗竴娆ommit +寤虹珛浜嗗熀鏈灦鏋勶紝鍒跺畾浜嗕唬鐮佽鑼 +### 绗簩娆ommit +瀹炵幇瀛楃璁$畻锛屼互鍙婂搴旂殑鏂囦欢璇诲啓鍔熻兘 +### 绗笁娆ommit +閲嶅啓浜嗙畻娉曞疄鐜帮紝澧炲姞璁$畻琛屾暟鍔熻兘 +### 绗洓娆ommit +澧炲姞浜嗚绠楁湁鏁堝崟璇嶆绘暟鐨勫姛鑳 +### 绗簲娆ommit +澧炲姞浜嗙粺璁¤瘝棰戝姛鑳斤紝杈撳嚭鍔熻兘涔熷畬鏁翠簡 +### 绗叚娆ommit +鏀圭敤StringBuilder鎻愰珮鎬ц兘锛屼慨鏀广佸鍔犱簡涓浜涗唬鐮佽鑼冧笂鐨勭粏鑺 +### 绗竷娆ommit +閫氳繃鍘诲垹鍘讳笉蹇呰鐨勫瓧绗︽搷浣滐紝鏀硅繘浜嗛儴鍒嗙畻娉曟晥鐜 +### 绗叓娆ommit +淇敼浜嗚鍙栫畻娉曚笌璁$畻琛屾暟绠楁硶浠ラ傚簲璇诲彇\r鐨勯渶瑕 +### 绗節娆ommit +杈撳嚭鏍煎紡锛岀粏鑺備慨鏀癸紝鎵闇鍔熻兘鍩烘湰瀹屾垚瀹屽 +### 绗崄娆ommit +鎻愬彇浜嗚鍙栧瓧绗︿覆骞舵媶鍒嗕负鏈夋晥鍗曡瘝Map鐨勬柟娉曪紝鎻愰珮鏁堢巼 +### 绗崄涓娆ommit +鏀圭敤NIO璇诲彇鏂囦欢浠ユ彁鍗囨ц兘 +### 绗崄浜屾commit +浼樺寲浜嗘ц兘锛氶噰鐢⊿tringTokenizer鍒嗗壊瀛楃涓诧紝閲囩敤澶氱嚎绋
鍒犲幓浜嗕箣鍓嶅皾璇曞悇绫荤畻娉曟椂閬楃暀鐨勪笉蹇呰鐨勫鍏 +### 绗崄涓夋commit +鍚堝苟璁$畻瀛楃鏁颁笌鍗曡瘝鏁扮殑绫伙紝娣诲姞娉ㄩ噴涓嶳EADME鏂囨湰
鏇存敼缂栫爜妯″紡涓篣TF-8瑙e喅鎻愪氦鏃剁殑涔辩爜闂 + + + + diff --git a/221801427/src/WordCount.java b/221801427/src/WordCount.java index efad86b8..5ea66f62 100644 --- a/221801427/src/WordCount.java +++ b/221801427/src/WordCount.java @@ -26,22 +26,23 @@ public WordCount(String inputFileName, String outputFileName) public void Count() { - final String content = FileReader.readFile(inputFileName); - HashMap words; - words = StringAnalyser.analyseString(content); + final String content = FileReader.readFile(inputFileName);// 浠庢枃浠惰鍙栧瓧绗︿覆 + final HashMap words = StringAnalyser.analyseString(content);// 浠庡瓧绗︿覆鎷嗗垎鏈夋晥鍗曡瘝锛岀粺璁″叆HashMap ExecutorService executor = Executors.newCachedThreadPool(); Future charCnt = executor.submit(new Callable() { + // 缁熻瀛楃鏁 public Integer call() { - return CharCounter.countChar(content); + return CharAndWordCounter.countChar(content); } }); Future lineCnt = executor.submit(new Callable() { + // 缁熻鏈夋晥琛屾暟 public Integer call() { return LineCounter.countLine(content); @@ -50,15 +51,17 @@ public Integer call() Future wordCnt = executor.submit(new Callable() { + // 缁熻鏈夋晥鍗曡瘝鏁 public Integer call() { - return WordCounter.countWord(words); + return CharAndWordCounter.countWord(words); } }); Future>> freqList = executor .submit(new Callable>>() { + // 鎺掑簭璇嶉鍓10鍗曡瘝 public ArrayList> call() { return FrequencySorter.sortFrequency(words); @@ -67,7 +70,7 @@ public ArrayList> call() try { - FilePrinter.writeFile(charCnt.get(), wordCnt.get(), lineCnt.get(), freqList.get(), outputFileName); + FilePrinter.writeFile(charCnt.get(), wordCnt.get(), lineCnt.get(), freqList.get(), outputFileName);// 鎵撳嵃缁撴灉 executor.shutdown(); } catch (InterruptedException | ExecutionException e) @@ -79,12 +82,14 @@ public ArrayList> call() public static void main(String[] args) { WordCount cmd; + if (args.length != 2) { System.out.println("Invalid input"); return; } - cmd = new WordCount(args[0], args[1]); - cmd.Count(); + cmd = new WordCount(args[0], args[1]);// 浼犲叆鍙傛暟锛堣緭鍏ヨ緭鍑烘枃浠跺悕锛 + // cmd = new WordCount("src/input.txt", "src/output.txt"); + cmd.Count();// 缁熻 } } diff --git a/221801427/src/lib/service/CharAndWordCounter.java b/221801427/src/lib/service/CharAndWordCounter.java new file mode 100644 index 00000000..f45229ca --- /dev/null +++ b/221801427/src/lib/service/CharAndWordCounter.java @@ -0,0 +1,24 @@ +package lib.service; + +import java.util.HashMap; + +public class CharAndWordCounter +{ + /** + * @param content + * @return 瀛楃鎬绘暟 + */ + public static int countChar(String content) + { + return content.length();// 鐩存帴杩斿洖瀛楃涓查暱搴 + } + + /** + * @param words + * @return 鍗曡瘝鎬绘暟 + */ + public static int countWord(HashMap words) + { + return words.size();// 杩斿洖HashMap瑙勬ā琛ㄧず鏈夋晥鍗曡瘝鎬绘暟 + } +} diff --git a/221801427/src/lib/service/CharCounter.java b/221801427/src/lib/service/CharCounter.java deleted file mode 100644 index 16628bdc..00000000 --- a/221801427/src/lib/service/CharCounter.java +++ /dev/null @@ -1,13 +0,0 @@ -package lib.service; - -public class CharCounter -{ - /** - * @param content - * @return 字符总数 - */ - public static int countChar(String content) - { - return content.length(); - } -} diff --git a/221801427/src/lib/service/FrequencySorter.java b/221801427/src/lib/service/FrequencySorter.java index bbd7dc3c..139ec497 100644 --- a/221801427/src/lib/service/FrequencySorter.java +++ b/221801427/src/lib/service/FrequencySorter.java @@ -14,12 +14,12 @@ public class FrequencySorter public static ArrayList> sortFrequency(HashMap words) { words = words.entrySet().stream() - .sorted(Map.Entry.comparingByValue() - .reversed() - .thenComparing(Map.Entry.comparingByKey())) - .limit(MAX_SIZE) + .sorted(Map.Entry.comparingByValue()// 鍊兼帓搴 + .reversed()// 鍊掑簭涓洪檷搴 + .thenComparing(Map.Entry.comparingByKey()))// 閿帓搴忥紙瀛楀吀搴忥級 + .limit(MAX_SIZE)// 鍓峂AX_SIZE涓 .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, - (oldVal, newVal) -> oldVal, LinkedHashMap::new)); + (oldVal, newVal) -> oldVal, LinkedHashMap::new));// 杩斿洖map ArrayList> freqList = new ArrayList>( words.entrySet()); diff --git a/221801427/src/lib/service/LineCounter.java b/221801427/src/lib/service/LineCounter.java index ae4f4375..9043817d 100644 --- a/221801427/src/lib/service/LineCounter.java +++ b/221801427/src/lib/service/LineCounter.java @@ -10,7 +10,7 @@ public class LineCounter /** * @param content - * @return 有效行数 + * @return 鏈夋晥琛屾暟 */ public static int countLine(String content) { @@ -20,6 +20,7 @@ public static int countLine(String content) matcher = VALID_LINE_PATTERN.matcher(content); while (matcher.find()) { + //鍒╃敤姝e垯琛ㄨ揪寮忓尮閰嶆湁鏁堣锛岀┖琛屼笉缁熻锛屽寘鎷琝t \r \n 绌烘牸浠ュ強鐢变粬浠粍鎴愮殑鎯呭喌 cnt++; } return cnt; diff --git a/221801427/src/lib/service/StringAnalyser.java b/221801427/src/lib/service/StringAnalyser.java index ab76da6c..c6b687dd 100644 --- a/221801427/src/lib/service/StringAnalyser.java +++ b/221801427/src/lib/service/StringAnalyser.java @@ -5,7 +5,7 @@ public class StringAnalyser { - private static final String INVALID_WORD_REGEX = "[^0-9A-Za-z]"; + private static final String FILTER_REGEX = "[^0-9A-Za-z]"; private static final String VALID_WORD_REGEX = "[a-z]{4}[0-9a-z]*"; /** @@ -13,25 +13,29 @@ public class StringAnalyser * @return words */ public static HashMap analyseString(String content) - { - int cnt; + { + int cnt; // 涓存椂鍙橀噺鐢ㄤ簬璁″叆閿硷紙鍗曡瘝鍑虹幇娆℃暟锛 String word; - + HashMap words = new HashMap(); - StringTokenizer tokenizer = new StringTokenizer(content.replaceAll(INVALID_WORD_REGEX, " ")); - + StringTokenizer tokenizer = new StringTokenizer(content.replaceAll(FILTER_REGEX, " ")); + // 鍏堝皢鍒嗛殧绗﹀叏鏇挎崲涓虹┖鏍硷紝鍐嶅埄鐢 StringTokenizer 鍒囧垎鍗曡瘝 + while (tokenizer.hasMoreTokens()) { word = tokenizer.nextToken(" "); if (Pattern.matches(VALID_WORD_REGEX, word)) { + // 鍒╃敤姝e垯琛ㄨ揪寮忕粺璁℃湁鏁堝瓧绗:鑷冲皯鏈夊洓浣嶄笖閮戒负瀛楁瘝锛屽悗璺熻嫢骞插瓧姣嶆垨鏁板瓧锛屼笉鍖哄垎澶у皬鍐欙紝璁″叆HashMap銆 if (words.containsKey(word)) { + // 鍗曡瘝宸茬粺璁″埌杩 cnt = words.get(word); words.put(word, cnt + 1); } else { + // 鍗曡瘝鍒濇缁熻鍒 words.put(word, 1); } } diff --git a/221801427/src/lib/service/WordCounter.java b/221801427/src/lib/service/WordCounter.java deleted file mode 100644 index 1faf663b..00000000 --- a/221801427/src/lib/service/WordCounter.java +++ /dev/null @@ -1,15 +0,0 @@ -package lib.service; - -import java.util.*; - -public class WordCounter -{ - /** - * @param words - * @return 单词总数 - */ - public static int countWord(HashMap words) - { - return words.size(); - } -} diff --git a/221801427/src/lib/tool/FilePrinter.java b/221801427/src/lib/tool/FilePrinter.java index 4e4ad3fa..2f8d7fd2 100644 --- a/221801427/src/lib/tool/FilePrinter.java +++ b/221801427/src/lib/tool/FilePrinter.java @@ -13,27 +13,33 @@ public class FilePrinter * @param freqList * @param outputFileName */ - public static void writeFile(int charCnt, int wordCnt, int lineCnt, ArrayList> freqList, - String outputFileName) + public static void writeFile(int charCnt, int wordCnt, int lineCnt, + ArrayList> freqList, String outputFileName) { + // 鎺ュ彈闇瑕佺粺璁$殑鏁板煎苟鎵撳嵃 File file = new File(outputFileName); FileWriter fileWriter = null; BufferedWriter bufferedWriter = null; try { fileWriter = new FileWriter(file); - bufferedWriter = new BufferedWriter(fileWriter); + bufferedWriter = new BufferedWriter(fileWriter);// 浣跨敤BufferedWriter鎻愰珮鎬ц兘 bufferedWriter.write("characters: " + charCnt + "\n"); bufferedWriter.write("words: " + wordCnt + "\n"); bufferedWriter.write("lines: " + lineCnt + "\n"); for (HashMap.Entry map : freqList) { - bufferedWriter.write(map.getKey() + ": " + map.getValue() + "\n"); + bufferedWriter.write(map.getKey() + ": " + map.getValue() + "\n");// 鎵撳嵃HashMap鐨勯敭涓庡搴斿 } bufferedWriter.flush(); bufferedWriter.close(); } + catch (FileNotFoundException e) + { + System.out.println("File Not Found"); + e.printStackTrace(); + } catch (IOException e) { System.out.println("Error Writing File"); @@ -41,3 +47,4 @@ public static void writeFile(int charCnt, int wordCnt, int lineCnt, ArrayList Date: Fri, 5 Mar 2021 11:44:45 +0800 Subject: [PATCH 20/27] Update README.md --- 221801427/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/221801427/README.md b/221801427/README.md index 5cf7db22..bd73ca3b 100644 --- a/221801427/README.md +++ b/221801427/README.md @@ -7,9 +7,9 @@ ## 鍔熻兘绠浠 杈撳叆鑻辨枃鏂囨湰锛堝彧鑰冭檻Ascii鐮侊紝姹夊瓧涓嶉渶鑰冭檻锛
1. 缁熻瀛楃鏁帮紙绌烘牸锛屾按骞冲埗琛ㄧ锛屾崲琛岀锛屽潎绠楀瓧绗︼級 - 2. 缁熻鏈夋晥琛屾暟锛堜换浣曞寘鍚潪绌虹櫧瀛楃鐨勮锛岄兘闇瑕佺粺璁★級 - 3. 缁熻鍗曡瘝鏁帮紙鑷冲皯浠4涓嫳鏂囧瓧姣嶅紑澶达紝璺熶笂瀛楁瘝鏁板瓧绗﹀彿锛屽崟璇嶄互鍒嗛殧绗﹀垎鍓诧紝涓嶅尯鍒嗗ぇ灏忓啓) - 4. 缁熻棰戠巼鏈楂樼殑10涓崟璇嶇殑鍑虹幇娆℃暟锛堝奸檷搴忥紝閿瓧鍏稿簭锛 +
2. 缁熻鏈夋晥琛屾暟锛堜换浣曞寘鍚潪绌虹櫧瀛楃鐨勮锛岄兘闇瑕佺粺璁★級 +
3. 缁熻鍗曡瘝鏁帮紙鑷冲皯浠4涓嫳鏂囧瓧姣嶅紑澶达紝璺熶笂瀛楁瘝鏁板瓧绗﹀彿锛屽崟璇嶄互鍒嗛殧绗﹀垎鍓诧紝涓嶅尯鍒嗗ぇ灏忓啓) +
4. 缁熻棰戠巼鏈楂樼殑10涓崟璇嶇殑鍑虹幇娆℃暟锛堝奸檷搴忥紝閿瓧鍏稿簭锛
鎸変互涓婇『搴忛愯鎵撳嵃鑷宠緭鍑烘枃鏈紝杈撳嚭鐨勬牸寮忓涓 > characters: number
From aef476f65514f6ef052825626b8a1675df663b18 Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Fri, 5 Mar 2021 18:13:32 +0800 Subject: [PATCH 21/27] Delete input.txt --- 221801427/src/input.txt | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 221801427/src/input.txt diff --git a/221801427/src/input.txt b/221801427/src/input.txt deleted file mode 100644 index 398a34c3..00000000 --- a/221801427/src/input.txt +++ /dev/null @@ -1,6 +0,0 @@ -abcdefg -hijklm n - - - opqrstuvwxyz -file123;123file;file;FILE;File From 33e7a5ee1870dfa183796c8f96b70450488899bd Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Fri, 5 Mar 2021 18:14:04 +0800 Subject: [PATCH 22/27] Delete output.txt --- 221801427/src/output.txt | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 221801427/src/output.txt diff --git a/221801427/src/output.txt b/221801427/src/output.txt deleted file mode 100644 index e587c0ea..00000000 --- a/221801427/src/output.txt +++ /dev/null @@ -1,8 +0,0 @@ -characters: 71 -words: 5 -lines: 4 -file: 3 -abcdefg: 1 -file123: 1 -hijklm: 1 -opqrstuvwxyz: 1 From 8729a65a065d097efa024303d61b0be3a5b7d6a4 Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Fri, 5 Mar 2021 18:15:02 +0800 Subject: [PATCH 23/27] Update FilePrinter.java --- 221801427/src/lib/tool/FilePrinter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/221801427/src/lib/tool/FilePrinter.java b/221801427/src/lib/tool/FilePrinter.java index 2f8d7fd2..1fc79793 100644 --- a/221801427/src/lib/tool/FilePrinter.java +++ b/221801427/src/lib/tool/FilePrinter.java @@ -16,7 +16,7 @@ public class FilePrinter public static void writeFile(int charCnt, int wordCnt, int lineCnt, ArrayList> freqList, String outputFileName) { - // 鎺ュ彈闇瑕佺粺璁$殑鏁板煎苟鎵撳嵃 + // 鎺ユ敹闇瑕佺粺璁$殑鏁板煎苟鎵撳嵃 File file = new File(outputFileName); FileWriter fileWriter = null; BufferedWriter bufferedWriter = null; From 7457ce1e13b136b09173c124c98fd3672304564a Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Sat, 6 Mar 2021 22:55:21 +0800 Subject: [PATCH 24/27] =?UTF-8?q?=E9=87=87=E7=94=A8=E4=BA=86=E6=9B=B4?= =?UTF-8?q?=E9=AB=98=E6=95=88=E7=9A=84=E5=88=86=E6=9E=90=E6=9C=89=E6=95=88?= =?UTF-8?q?=E5=8D=95=E8=AF=8D=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 221801427/README.md | 4 +- 221801427/src/WordCount.java | 2 +- 221801427/src/lib/service/StringAnalyser.java | 60 +++++++++++++++++++ 3 files changed, 63 insertions(+), 3 deletions(-) diff --git a/221801427/README.md b/221801427/README.md index bd73ca3b..6db2a0ad 100644 --- a/221801427/README.md +++ b/221801427/README.md @@ -1,4 +1,4 @@ -锘# PersonalProject-Java +# PersonalProject-Java ---------- @@ -26,7 +26,7 @@ word2: number
## 杩愯鏂瑰紡 杩愯cmd - javac WordCount.java + javac -encoding UTF-8 WordCount.java java WordCount input.txt output.txt diff --git a/221801427/src/WordCount.java b/221801427/src/WordCount.java index 5ea66f62..ec1610b5 100644 --- a/221801427/src/WordCount.java +++ b/221801427/src/WordCount.java @@ -27,7 +27,7 @@ public WordCount(String inputFileName, String outputFileName) public void Count() { final String content = FileReader.readFile(inputFileName);// 浠庢枃浠惰鍙栧瓧绗︿覆 - final HashMap words = StringAnalyser.analyseString(content);// 浠庡瓧绗︿覆鎷嗗垎鏈夋晥鍗曡瘝锛岀粺璁″叆HashMap + final HashMap words = StringAnalyser.analyseContent(content);// 浠庡瓧绗︿覆鎷嗗垎鏈夋晥鍗曡瘝锛岀粺璁″叆HashMap ExecutorService executor = Executors.newCachedThreadPool(); diff --git a/221801427/src/lib/service/StringAnalyser.java b/221801427/src/lib/service/StringAnalyser.java index c6b687dd..fbc37ee1 100644 --- a/221801427/src/lib/service/StringAnalyser.java +++ b/221801427/src/lib/service/StringAnalyser.java @@ -42,4 +42,64 @@ public static HashMap analyseString(String content) } return words; } + + /** + * @param content + * @return words + */ + public static HashMap analyseContent(String content) + { + char c; + int cnt; + String tempWord = ""; + HashMap words = new HashMap(); + for (int i = 0; i < content.length(); i++) + { + c = content.charAt(i); + + if (Character.isLetterOrDigit(c)) + { + tempWord += c; + } + else + { + if (isWord(tempWord)) + { + String word = tempWord.toLowerCase(); + if (words.containsKey(word)) + { + // 鍗曡瘝宸茬粺璁″埌杩 + cnt = words.get(word); + words.put(word, cnt + 1); + } + else + { + // 鍗曡瘝鍒濇缁熻鍒 + words.put(word, 1); + } + } + tempWord = ""; + } + } + return words; + } + + public static boolean isWord(String tempWord) + { + if (tempWord.length() >= 4) + { + for (int i = 0; i < 4; i++) + { + if (!Character.isLetter(tempWord.charAt(i))) + { + return false; + } + } + } + else + { + return false; + } + return true; + } } From bfd5527b5fa409d33f2f41a2a9ffbf2cacc639c6 Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Sat, 6 Mar 2021 23:26:37 +0800 Subject: [PATCH 25/27] Update FileReader.java --- 221801427/src/lib/tool/FileReader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/221801427/src/lib/tool/FileReader.java b/221801427/src/lib/tool/FileReader.java index 089f7f67..6154e24f 100644 --- a/221801427/src/lib/tool/FileReader.java +++ b/221801427/src/lib/tool/FileReader.java @@ -28,7 +28,7 @@ public static String readFile(String inputFileName) // 閫氳繃RandomAccessFile鑾峰彇FileChannel锛屽苟閫氳繃FileChannel.map鏂规硶锛屾妸鏂囦欢鏄犲皠鍒拌櫄鎷熷唴瀛橈紝杩斿洖閫昏緫鍦板潃銆 if (mappedByteBuffer != null) { - return StandardCharsets.UTF_8.decode(mappedByteBuffer).toString().toLowerCase(); // 杞崲涓哄叏灏忓啓鐨勫瓧绗︿覆 + return StandardCharsets.UTF_8.decode(mappedByteBuffer).toString(); } else { From 697ac97d3f313008d255ecaaedc2d98da0a6dc76 Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Sun, 7 Mar 2021 20:15:48 +0800 Subject: [PATCH 26/27] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=BA=86=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E6=88=AA=E6=AD=A2=E5=90=8E=E8=AF=AF=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=9A=84=E6=94=B9=E5=8A=A8=EF=BC=8C=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E5=B7=B2=E4=B8=8D=E5=8C=85=E5=90=AB=E6=88=AA=E8=87=B3?= =?UTF-8?q?=E4=B9=8B=E5=90=8Ecommit=E7=9A=84=E4=BB=A3=E7=A0=81=EF=BC=8C?= =?UTF-8?q?=E6=9C=9B=E5=8A=A9=E6=95=99=E6=B5=B7=E6=B6=B5=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 221801427/src/WordCount.java | 2 +- 221801427/src/lib/service/StringAnalyser.java | 60 ------------------- 2 files changed, 1 insertion(+), 61 deletions(-) diff --git a/221801427/src/WordCount.java b/221801427/src/WordCount.java index ec1610b5..5ea66f62 100644 --- a/221801427/src/WordCount.java +++ b/221801427/src/WordCount.java @@ -27,7 +27,7 @@ public WordCount(String inputFileName, String outputFileName) public void Count() { final String content = FileReader.readFile(inputFileName);// 浠庢枃浠惰鍙栧瓧绗︿覆 - final HashMap words = StringAnalyser.analyseContent(content);// 浠庡瓧绗︿覆鎷嗗垎鏈夋晥鍗曡瘝锛岀粺璁″叆HashMap + final HashMap words = StringAnalyser.analyseString(content);// 浠庡瓧绗︿覆鎷嗗垎鏈夋晥鍗曡瘝锛岀粺璁″叆HashMap ExecutorService executor = Executors.newCachedThreadPool(); diff --git a/221801427/src/lib/service/StringAnalyser.java b/221801427/src/lib/service/StringAnalyser.java index fbc37ee1..c6b687dd 100644 --- a/221801427/src/lib/service/StringAnalyser.java +++ b/221801427/src/lib/service/StringAnalyser.java @@ -42,64 +42,4 @@ public static HashMap analyseString(String content) } return words; } - - /** - * @param content - * @return words - */ - public static HashMap analyseContent(String content) - { - char c; - int cnt; - String tempWord = ""; - HashMap words = new HashMap(); - for (int i = 0; i < content.length(); i++) - { - c = content.charAt(i); - - if (Character.isLetterOrDigit(c)) - { - tempWord += c; - } - else - { - if (isWord(tempWord)) - { - String word = tempWord.toLowerCase(); - if (words.containsKey(word)) - { - // 鍗曡瘝宸茬粺璁″埌杩 - cnt = words.get(word); - words.put(word, cnt + 1); - } - else - { - // 鍗曡瘝鍒濇缁熻鍒 - words.put(word, 1); - } - } - tempWord = ""; - } - } - return words; - } - - public static boolean isWord(String tempWord) - { - if (tempWord.length() >= 4) - { - for (int i = 0; i < 4; i++) - { - if (!Character.isLetter(tempWord.charAt(i))) - { - return false; - } - } - } - else - { - return false; - } - return true; - } } From 4868c32049cdb65e96a6a3bd7aa492e60cccdbd5 Mon Sep 17 00:00:00 2001 From: raiLGun2000 <49356018+raiLGun2000@users.noreply.github.com> Date: Sun, 7 Mar 2021 20:32:03 +0800 Subject: [PATCH 27/27] =?UTF-8?q?=E8=BF=98=E5=8E=9F=E4=B8=BA=E6=88=AA?= =?UTF-8?q?=E6=AD=A2=E5=89=8D=E6=8F=90=E4=BA=A4=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 221801427/src/lib/tool/FileReader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/221801427/src/lib/tool/FileReader.java b/221801427/src/lib/tool/FileReader.java index 6154e24f..08f8e069 100644 --- a/221801427/src/lib/tool/FileReader.java +++ b/221801427/src/lib/tool/FileReader.java @@ -28,7 +28,7 @@ public static String readFile(String inputFileName) // 閫氳繃RandomAccessFile鑾峰彇FileChannel锛屽苟閫氳繃FileChannel.map鏂规硶锛屾妸鏂囦欢鏄犲皠鍒拌櫄鎷熷唴瀛橈紝杩斿洖閫昏緫鍦板潃銆 if (mappedByteBuffer != null) { - return StandardCharsets.UTF_8.decode(mappedByteBuffer).toString(); + return StandardCharsets.UTF_8.decode(mappedByteBuffer).toString().toLowerCase(); } else {