🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
標準入力

標準入力(stdin)は、プログラムが標準的に用いるデータ入力元。リダイレクトしない限り、プログラムを起動した端末のキーボードが標準入力になります。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

標準出力

標準出力(stdout)は、プログラムが標準的に用いるデータ出力元。標準出力に書き込み要求を発行しすることにより、ディスプレイ装置にデータを表示することができます。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Java

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

592閲覧

Hashmapを使用したコードをもっと簡潔にまとめたい

tuntunn69rock

総合スコア4

標準入力

標準入力(stdin)は、プログラムが標準的に用いるデータ入力元。リダイレクトしない限り、プログラムを起動した端末のキーボードが標準入力になります。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

標準出力

標準出力(stdout)は、プログラムが標準的に用いるデータ出力元。標準出力に書き込み要求を発行しすることにより、ディスプレイ装置にデータを表示することができます。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Java

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/03/06 07:06

前提・実現したいこと

とある問題文を解いていて、

「キーボードのa-z全26種類にはそれぞれ耐久度があります。該当のキーを打つと、そのキーの耐久度が 1 減り、耐久度が 0 になると、そのキーは入力しても何も出力しないボタンになります。
各キーの耐久度が一行目に、入力した文章が二行目に与えられるので、ディスプレイに映された文字列を出力するプログラムを書いてください。」

という問題があり、下記ソースコードで正解はしたものの、Hashmapで全アルファベットを登録するのは冗長過ぎると思い、これを簡潔に出来ないかご教授戴きたいです。
(hashmapは使用しなくても大丈夫です。)

入力値
1 3 2 6 3 5 5 6 2 6 0 4 5 2 4 2 1 2 4 0 4 2 2 5 0 2
abcabcabcabc

出力結果
abcbcb

該当のソースコード

java

1 2import java.util.*; 3public class Main { 4 public static void main(String[] args) { 5 Scanner sc = new Scanner(System.in); 6 7 HashMap<String, Integer>list = new HashMap<String, Integer>(); 8 list.put("a",sc.nextInt()); 9 list.put("b",sc.nextInt()); 10 list.put("c",sc.nextInt()); 11 list.put("d",sc.nextInt()); 12 list.put("e",sc.nextInt()); 13 list.put("f",sc.nextInt()); 14 list.put("g",sc.nextInt()); 15 list.put("h",sc.nextInt()); 16 list.put("i",sc.nextInt()); 17 list.put("j",sc.nextInt()); 18 list.put("k",sc.nextInt()); 19 list.put("l",sc.nextInt()); 20 list.put("m",sc.nextInt()); 21 list.put("n",sc.nextInt()); 22 list.put("o",sc.nextInt()); 23 list.put("p",sc.nextInt()); 24 list.put("q",sc.nextInt()); 25 list.put("r",sc.nextInt()); 26 list.put("s",sc.nextInt()); 27 list.put("t",sc.nextInt()); 28 list.put("u",sc.nextInt()); 29 list.put("v",sc.nextInt()); 30 list.put("w",sc.nextInt()); 31 list.put("x",sc.nextInt()); 32 list.put("y",sc.nextInt()); 33 list.put("z",sc.nextInt()); 34 35 String box[] = sc.next().split(""); 36 int c = 0; 37 38 for(int i = 0;i<box.length;i++){ 39 if(list.get(box[i])<=0){ 40 }else{ 41 System.out.print(box[i]); 42 c = list.get(box[i]); 43 list.replace(box[i],c-1); 44 } 45 } 46 } 47}

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

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

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

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

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

dodox86

2021/03/06 07:28

これはpaizaのスキルチェック問題ではないですか? 問題の公開は規約で禁止されています。 https://paiza.jp/guide/kiyaku > 第3章 paiza > 第11条(禁止行為) > (3)ブログ・SNS等の各種媒体(インターネット媒体に限られず、不特定多数が閲覧可能なものを全て含む。)上において、当社がpaizaで出題した問題の内容、当該問題に対する解答、解答へのヒント等の示唆およびカンニング等の不正を助長する内容等を掲載する行為。
m.ts10806

2021/03/06 09:21 編集

あぁーそれなら解決済みを受付中に戻したうえで、運営に質問削除を依頼してください。 回答ついてたら質問者側で直接削除依頼の操作できないので。
guest

回答1

0

ベストアンサー

rangeとか

java

1java.util.stream.IntStream a = java.util.stream.IntStream.range('a', 'z'); 2a.forEach(c -> { 3 System.out.format("%c", c).println(); 4});

投稿2021/03/06 07:18

m.ts10806

総合スコア80875

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問