[解決済み] String[]はStringに変換できない
2022-02-07 13:24:50
質問
そこで、配列のサイズを入力し、名前を記入するプログラムを書いています。その後、ユーザーに数字を入力してもらうと、プログラムはその長さを持つ名前を配列から検索します。しかし、「互換性のない型エラー」が発生し続けます。String[]は文字列に変換できません。
package LAB4_1;
import java.util.Arrays;
import java.util.Scanner;
public class LAB4_1
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
String names [];
int length_typed;
String names_printed;
// Read the number of kids
System.out.print("How many kids are there? ");
int size = sc.nextInt();
// Read the names of the kids
String [] kids = new String [size];
for (int k = 0; k < kids.length; k++)
{
System.out.print("Enter name of kid #" + k + ": ");
kids[k] = sc.next();
}
// Print all the names of the kids and the length of their names
System.out.println("Names of kids with lengths are: ");
for (int i = 0; i < kids.length; i++)
{
System.out.println(kids[i] + " " + kids[i].length());
}
// Prompt for sequence of name lengths:
System.out.print("Enter lengths of names as promted, 0 to terminate.");
// Read the lengths and print list of names till 0 is entered
length_typed = sc.nextInt();
エラーはこちら
names_printed = LAB4_1.filterByLength(names, length_typed);
String[]はStringに変換できません。メソッドを正しく呼び出していないのでしょうか?
System.out.println(names_printed);
}
/**
* Count the number of names in an array that have a certain length
* @param names: An array of names
* @param length : an integer length
* @return the number of names in the array whose length is given
*/
static int countByLength(String [] names, int length)
{
int count = 0;
for(int i = 0;i < names.length;i++)
{
if(names[i].length() == length)
count++;
}
return count;
}
/**
* Filter an array of names and keep only those names with a given length
* @param names: an array of names
* @param length: an integer length
* @return the array of names that have the given length
*/
static String [] filterByLength(String [] names, int length)
{
String [] filtered = new String[countByLength(names, length)];
int index = 0;
for(int k = 0; k < filtered.length; k++)
{
if(names[k].length() == length) filtered[index++]=names[k];
}
return filtered;
}
}
解決方法は?
いいえ、あなたはメソッドを正しく呼び出していません。あなたのメソッド
filterByLength
は型を返します。
String[]
. あなたはその値を
String
オブジェクト、すなわち
names_printed
.
うまくいきませんね。を再入力してください。
names_printed
を
String[]
で、あなたのコードは動作するはずです。ただし、その場合は
println
で、読みやすい出力が得られます。そのためには
println(Arrays.toString(names_printed))
.
関連
-
[解決済み】Mockitoでモックからチェックされた例外を投げる
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] 英数字のランダムな文字列を生成する方法
-
[解決済み] Javaで文字列を分割する方法
-
[解決済み] スタックトレースを文字列に変換するにはどうすればよいですか?
-
[解決済み] Javaで「ArrayList<String>」を「String[]」に変換する。
-
[解決済み] Rが解決できない - Androidエラー
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】javaで指定されたファイルが見つからない
-
[解決済み] java のクラス内のコンストラクタは、指定された型に適用できない
-
[解決済み】"比較メソッドはその一般契約に違反する!"
-
[解決済み】エラー「No enclosing instance of type Foo is accessible」の原因と修正方法について教えてください。
-
[解決済み】宣言されたパッケージが期待されるパッケージと一致しない ""
-
[解決済み】Java JDK - doubleからintへの非可逆変換の可能性
-
[解決済み】 JAVA 変数宣言はここではできない
-
[解決済み】java 'jar'が内部コマンドまたは外部コマンドとして認識されない。
-
[解決済み】Javaでユーザー入力を待機させる方法
-
[解決済み】文字列中の � を置換する方法