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

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

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

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

Q&A

解決済

3回答

198閲覧

Function式のreturnで"A"を複数にして返したい

renji

総合スコア41

Java

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

1グッド

0クリップ

投稿2018/10/09 06:39

数字の分だけ、"A"と出力したいとき、

int num = 3; Function<Integer, String> func = (i) -> {return "A"*i;};

とすると「二項演算子*のオペランド型が不正です」とエラーが出てしまいます。

Function<Integer, String> func = (i) -> {return "A"+i;};

とすると

A3

と表示されるので

{return "A"*i;};

の書き方が間違っていると思うのですが、return文でi回の"A"を返すような文はどのように書けばいいいのでしょうか?
よろしくお願いします。

A-pZ👍を押しています

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

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

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

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

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

guest

回答3

0

ベストアンサー

こんなのでどうでしょうか。

Java

1Function<Integer, String> func = i -> Stream.generate(() -> "A").limit(i).collect(Collectors.joining());

投稿2018/10/09 07:01

YamakawaJunichi

総合スコア630

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

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

renji

2018/10/09 07:23

ありがとうございます! Stream.generateやCollectors.joiningなど、初めて見かけたので、検索して調べさせて貰いました。 新しく知識が身についてありがたいです。 プログラムを読んで、さらに勉強させて貰います。 ありがとうございました!
guest

0

Java11であればStringクラスにrepeatメソッドがあるので、それを使えばできます。(たぶん)

Java

1return new String("A").repeat(10);

Java11未満なら泥臭いやり方ですが、単純にループで行うとか

Java

1String tmp = ""; 2for (int i=1; i<=10; i++) { 3 tmp += "A"; 4} 5return tmp;

Apache Common LangのStringUtilsクラスのrepeatメソッドを使うとかでしょうか。

Java

1return StringUtils.repeat("A", 10);

投稿2018/10/09 07:05

dice142

総合スコア5158

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

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

renji

2018/10/09 07:26

ありがとうございました。 java11ではrepeatメソッドがあると初めて知りました。 StringUtils.repeatという書き方も初めて知りました。 いろいろと試してみたいと思います。 教えてくださって、ありがとうございました。
guest

0

Java11以降を使ったり、外部ライブラリを利用したりしないと意外と面倒です。
StackOverflow - Simple way to repeat a String in java

個人的には Alexis C. 氏の回答が好みです。

Java

public static String repeat(String str, int times) {
return Stream.generate(() -> str).limit(times).collect(joining());
}

投稿2018/10/09 07:02

LouiS0616

総合スコア35660

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

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

renji

2018/10/09 07:24

ありがとうございます。 プログラムの書き方を読んで、勉強させて貰います。 教えてくださって、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問