質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
integer

integerは、一般的に整数を表します。プラスやマイナス、ゼロもなりうる全ての数です。(例 : -2, -1, 0, 1, 2...)

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

解決済

2回答

1473閲覧

HashMapを使用して文章中の単語の出現数をカウントするプログラムを作成したい

snow_bell

総合スコア2

integer

integerは、一般的に整数を表します。プラスやマイナス、ゼロもなりうる全ての数です。(例 : -2, -1, 0, 1, 2...)

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

1グッド

0クリップ

投稿2020/07/06 10:02

編集2020/07/06 10:06

前提・実現したいこと

HashMapを使って、文章中の単語の出現数をカウントするプログラムを作っています。
本来ならば画像のような実行画結果になるはずなのですが、実行しても元の文章が表示されるだけで単語数がカウントされません。
イメージ説明

発生している問題・エラーメッセージ

エラーメッセージは表示されていません。

試したこと

以下にプログラムと実行結果、使用した文章を書きます。

プログラム
HashMap<String, Integer> words;

// Create the HashMap
words = new HashMap <String, Integer>();

// Load files
String filename="sample.txt";
String[] lines =loadStrings (filename);
String allText = join(lines, " ").toLowerCase();
String[] tokens =splitTokens (allText, ",.?!:;[]-"'");

for (String s : tokens) {
// Is the word in the HashMap?
if (words.containsKey (s)) {
// Increase the count
words.put(s, words.get (s)+1);
} else {
// Add word to the HashMap
words.put(s, 1);
}
}

for (String val : words.keySet ()) {
print(val + "");
println(words.get (val));
}

実行結果
イメージ説明

使用した文章(sample.txtの中身)

Jared Kushner may have a harder time doing his job now that he s lost access to top secret information, becoming the most high profile victim in a White House security clearance scandal. According to Politico, Kushner and all other White House aides operating at a high level interim security clearance? Top Secret/SCI ? were informed Friday that their clearance would be downgraded.

補足情報(FW/ツールのバージョンなど)

Processingを使用しています。

TN8001👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

splitTokens(value)としたときはスペース・タブ・\r・\n・\fで分割しますが、
splitTokens(value, delim)としたときはdelimのみで分割します。
なので",.?!:;[]-\"'"の中にスペースも入れてください(必要ならタブ等も)

splitTokens() \ Language (API) \ Processing 3+

投稿2020/07/06 10:35

TN8001

総合スコア9326

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

snow_bell

2020/07/06 12:36

悩みに悩んでいましたが、スペースを追加したら望んでいた実行結果になりました!ご丁寧に教えていただき、ありがとうございました。
guest

0

パッと見た感じ、できているというか、カンマとピリオドとクエスチョンで分割したものがカウントできているように見えます。

splitTokens

が、期待の結果になっていないように感じます。

投稿2020/07/06 10:22

momon-ga

総合スコア4820

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

snow_bell

2020/07/06 12:36

無事に解決いたしました!ご丁寧なアドバイスをありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問