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

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

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

charは文字データ型を指します。一文字分の文字コードの格納を想定としている型です。

Java

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

String

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

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

解決済

2回答

572閲覧

「Java] コードの意味を教えてください

sacba

総合スコア6

char

charは文字データ型を指します。一文字分の文字コードの格納を想定としている型です。

Java

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

String

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

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2020/04/19 04:18

編集2020/04/19 04:20

Java言語についての質問です。

「文字列内において、各数字の出現回数を数えて表示する」プログラムを探していたところ、
あるサイトで下記のプログラムが載っていたので、実際にコピーして動作確認も行い、
ちゃんと動いたのですが、「  cnt[ch - '0']++; 」の部分のコードの意味がわかりません。
(for文の意味自体は分かるので、[ch - '0']の部分がわからないです)
サイトには解説が載っていなかったので、どなたかすみませんが解説をしていただけないでしょうか。

public static void main(String[] args) {
int[] cnt = new int[10];

String str = "3.1415926535897932846"; for (int i = 0; i < str.length(); i++) { char ch = str.charAt(i); if (('0' <= ch) && (ch <= '9')) cnt[ch - '0']++; } for (int i = 0; i < 10; i++) System.out.printf("'%d' : %d\n", i, cnt[i]); }

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

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

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

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

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

guest

回答2

0

文字コード'0''9'は連続しているため、'0'を引いてやると数値の09になります。

投稿2020/04/19 04:26

編集2020/04/19 04:27
SHOMI

総合スコア4079

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

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

0

ベストアンサー

文字を表すchar型の正体は、文字と1対1に対応した数です。
この文字と数の対応表のことを文字コードと呼び、Javaのchar型はUnicodeというものを使っています。
例えば'A'という文字は65、'B'は66という具合に対応しています。
そして数字は'0''9'が4857に対応しています。
そしてそれぞれから'0'、つまり48を引くと、0~9となります。これを配列のインデックスとして使用しています。

投稿2020/04/19 04:25

swordone

総合スコア20651

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

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

sacba

2020/04/19 04:31

とても素早くわかりやすい解説ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問