/** * ドメイン非依存URL出力フィルタ * javadrill.tech移行時はwp_options.home/siteurlのみ変更すればよい * * データベースには絶対URL(https://minner.asia)を保持し、 * 表示時に現在のドメイン(home_url())に動的変換する */ function javadrill_make_urls_dynamic($content) { if (empty($content)) { return $content; } // データベース内の絶対URLを現在のhome_url()に置換 $old_url = 'https://minner.asia'; $new_url = untrailingslashit(home_url()); // http版も対応(念のため) $content = str_replace($old_url, $new_url, $content); $content = str_replace('http://minner.asia', $new_url, $content); return $content; } // 投稿本文、ウィジェット、タームの説明、抜粋に適用 add_filter('the_content', 'javadrill_make_urls_dynamic', 20); add_filter('widget_text', 'javadrill_make_urls_dynamic', 20); add_filter('term_description', 'javadrill_make_urls_dynamic', 20); add_filter('get_the_excerpt', 'javadrill_make_urls_dynamic', 20); 解答例 | Javaドリル https://minner.asia 楽々学べるJavaの問題集 Fri, 05 Sep 2025 02:19:43 +0000 ja hourly 1 https://wordpress.org/?v=6.8.3 https://minner.asia/wp-content/uploads/2023/10/cropped-logo-32x32.png 解答例 | Javaドリル https://minner.asia 32 32 008 メソッド (メソッドの戻り値)023 解答例 https://minner.asia/archives/2462 https://minner.asia/archives/2462#respond Fri, 24 Nov 2023 02:47:23 +0000 http://localhost/?p=2462
public class StringUtil {

    public static String reverseString(String input) {
        // 文字列をchar配列に変換
        char[] charArray = input.toCharArray();

        // 配列を逆順にする
        for (int i = 0, j = charArray.length - 1; i < j; i++, j--) {
            char temp = charArray[i];
            charArray[i] = charArray[j];
            charArray[j] = temp;
        }

        // char配列をStringに変換して返す
        return new String(charArray);
    }

    public static void main(String[] args) {
        // テスト用の文字列
        String testString = "Hello, Java!";

        // reverseStringメソッドを呼び出して逆順の文字列を表示
        String reversed = reverseString(testString);
        System.out.println("元の文字列: " + testString);
        System.out.println("逆順の文字列: " + reversed);
    }
}

この例では、元の文字列を char 配列に変換し、その後、for ループを使用して配列を逆順にします。最後に、逆順になった char 配列を新しい String インスタンスに変換して返します。

StringBuilderを使った解答例

public class StringUtil {

    public static String reverseString(String input) {
        // StringBuilderを使用して文字列を逆順にする
        StringBuilder reversed = new StringBuilder(input).reverse();
        // StringBuilderからStringに変換して返す
        return reversed.toString();
    }

    public static void main(String[] args) {
        // テスト用の文字列
        String testString = "Hello, Java!";

        // reverseStringメソッドを呼び出して逆順の文字列を表示
        String reversed = reverseString(testString);
        System.out.println("元の文字列: " + testString);
        System.out.println("逆順の文字列: " + reversed);
    }
}

この例では、StringBuilder を使って文字列を逆順にしています。reverseString メソッドが呼び出されると、元の文字列を逆順に変換した新しい文字列が返されます。

「008 メソッド」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2462/feed 0
008 メソッド (メソッドの戻り値)022 解答例 https://minner.asia/archives/2456 https://minner.asia/archives/2456#respond Fri, 24 Nov 2023 02:41:24 +0000 http://localhost/?p=2456
public class CircleAreaCalculator {

    // calculateCircleArea メソッドの宣言
    public static double calculateCircleArea(double radius) {
        // 面積計算式: π * 半径 * 半径
        double area = Math.PI * radius * radius;
        return area;
    }

    public static void main(String[] args) {
        // テスト用の半径
        double testRadius = 5.0;

        // calculateCircleArea メソッドを呼び出して面積を表示
        double area = calculateCircleArea(testRadius);
        System.out.println("半径 " + testRadius + " の円の面積は " + area + " です。");
    }
}

このコードでは、CircleAreaCalculator クラス内に calculateCircleArea メソッドが定義されています。このメソッドは半径を引数として受け取り、与えられた半径に基づいて円の面積を計算して返します。main メソッドでは、テスト用の半径を指定して calculateCircleArea メソッドを呼び出し、計算された面積を表示しています。

「008 メソッド」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2456/feed 0
008 メソッド (メソッドの戻り値)021 解答例 https://minner.asia/archives/2450 https://minner.asia/archives/2450#respond Fri, 24 Nov 2023 02:36:25 +0000 http://localhost/?p=2450
public class EvenOrOddChecker {

    // evenOrOdd メソッドの宣言
    public static String evenOrOdd(int number) {
        // 剰余演算子を使用して偶数か奇数かを判定し、結果を文字列として返す
        return (number % 2 == 0) ? "偶数" : "奇数";
    }

    public static void main(String[] args) {
        // テスト用の整数
        int testNumber = 7;

        // evenOrOdd メソッドを呼び出して判定結果を表示
        String result = evenOrOdd(testNumber);
        System.out.println(testNumber + " は " + result + " です。");
    }
}

この例では、evenOrOdd メソッドが整数を引数として受け取り、剰余演算子を使用して偶数か奇数かを判定しています。main メソッドでは、テスト用の整数を指定して evenOrOdd メソッドを呼び出し、結果を表示しています。結果として、7は奇数なので、「7 は 奇数 です。」と表示されます。

「008 メソッド」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2450/feed 0
008 メソッド (メソッドの戻り値)020 解答例 https://minner.asia/archives/2440 https://minner.asia/archives/2440#respond Fri, 24 Nov 2023 02:27:22 +0000 http://localhost/?p=2440
public class StringConcatenation {

    // concatenateStrings メソッドの宣言
    public static String concatenateStrings(String str1, String str2) {
        return str1 + str2;
    }

    public static void main(String[] args) {
        // テスト用の文字列
        String text1 = "Hello, ";
        String text2 = "Java!";

        // concatenateStrings メソッドを呼び出して文字列を結合
        String result = concatenateStrings(text1, text2);

        // 結果を表示
        System.out.println("結合した文字列: " + result);
    }
}

この例では、concatenateStrings メソッドが引数として渡された2つの文字列を結合しています。main メソッドでは、テスト用の文字列を定義し、concatenateStrings メソッドを呼び出して結果を表示しています。

「008 メソッド」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2440/feed 0
008 メソッド (メソッドの戻り値)019 解答例 https://minner.asia/archives/2432 https://minner.asia/archives/2432#respond Fri, 24 Nov 2023 02:21:14 +0000 http://localhost/?p=2432
public class ArrayOperations {

    // findMax メソッドの宣言
    public static int findMax(int[] array) {
        // 配列が空の場合、最大値は定義できません。ここではエラーコードとして -1 を返します。
        if (array == null || array.length == 0) {
            return -1;
        }

        // 最大値の初期化
        int max = array[0];

        // 配列内の各要素を比較
        for (int i = 1; i < array.length; i++) {
            if (array[i] > max) {
                // より大きい値が見つかった場合、最大値を更新
                max = array[i];
            }
        }

        // 最大値を戻り値として返す
        return max;
    }

    public static void main(String[] args) {
        // テスト用の配列
        int[] numbers = { 3, 7, 1, 9, 4, 2, 8 };

        // findMax メソッドを呼び出して最大値を取得
        int maxNumber = findMax(numbers);

        // 結果を表示
        System.out.println("配列内の最大値: " + maxNumber);
    }
}

この例では、findMax メソッドが引数として整数型の配列を受け取り、その中から最大値を見つけて返す機能を実装しています。

「008 メソッド」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2432/feed 0
008 メソッド (参照型の引数を持つメソッド)018 解答例 https://minner.asia/archives/2425 https://minner.asia/archives/2425#respond Fri, 24 Nov 2023 02:09:27 +0000 http://localhost/?p=2425
public class ArrayAverageCalculator {

    // 整数型の配列の平均値を計算して返すメソッド
    public static double calculateAverage(int[] array) {
        if (array == null || array.length == 0) {
            // 配列がnullまたは空の場合はゼロを返すか、エラー処理を行う
            return 0.0;
        }

        // 配列の合計を求めるための変数を初期化
        int sum = 0;

        // 配列の各要素を合計に加える
        for (int value : array) {
            sum += value;
        }

        // 配列の要素数で割って平均値を計算
        double average = (double) sum / array.length;

        // 平均値を返す
        return average;
    }

    public static void main(String[] args) {
        // 使用例
        int[] numbers = {5, 10, 15, 20, 25};
        double result = calculateAverage(numbers);

        System.out.println("Average: " + result);
    }
}

この例では、calculateAverage メソッドが整数型の配列を引数として受け取り、空の配列やnullでないことを確認してから平均値を計算しています。平均値は double 型で返されています。

引数として渡された配列をメソッド内で操作する

Javaにおいて、配列は参照型であり、メソッドに渡すときは配列の参照が渡されるため、メソッド内で配列を操作すると呼び出し元にも影響が及びます。以下に、参照渡しされた配列を操作する場合の一般的な手順と注意点を解説します。

  1. 配列の作成:
    • メソッド内で新しい配列を作成すると、それはメソッド内でのみ有効です。元の呼び出し元の配列には影響がありません。
  2. 配列の変更:
    • メソッド内で引数として渡された配列の要素を変更すると、呼び出し元の配列も変更されます。これは、渡されたのは配列の参照であるためです。
  3. 新しい配列を返す:
    • メソッドが新しい配列を返す場合、呼び出し元の配列には影響がありません。新しい配列が作成され、それが返されるためです。

以下に、これらの概念を示す簡単な例を示します。

public class ArrayManipulator {

    // 配列の要素を倍にするメソッド
    public static void doubleArrayElements(int[] array) {
        for (int i = 0; i < array.length; i++) {
            array[i] *= 2; // 配列の各要素を倍にする
        }
    }

    // 配列のコピーを作成し、各要素を倍にして返すメソッド
    public static int[] doubleArrayAndReturnNew(int[] array) {
        int[] newArray = new int[array.length];
        for (int i = 0; i < array.length; i++) {
            newArray[i] = array[i] * 2; // 新しい配列に倍にした要素をコピー
        }
        return newArray; // 新しい配列を返す
    }

    public static void main(String[] args) {
        int[] originalArray = {1, 2, 3, 4, 5};

        // 配列の要素を倍にするメソッドを呼び出す
        doubleArrayElements(originalArray);

        // 呼び出し元の配列が変更されていることを確認
        System.out.println("Original Array after doubling elements:");
        for (int value : originalArray) {
            System.out.print(value + " ");
        }

        // 新しい配列を作成し、各要素を倍にして返すメソッドを呼び出す
        int[] newArray = doubleArrayAndReturnNew(originalArray);

        // 呼び出し元の配列には影響がないことを確認
        System.out.println("\nOriginal Array after creating a new doubled array:");
        for (int value : originalArray) {
            System.out.print(value + " ");
        }

        // 新しい配列が正しく作成されていることを確認
        System.out.println("\nNew Doubled Array:");
        for (int value : newArray) {
            System.out.print(value + " ");
        }
    }
}

この例では、doubleArrayElements メソッドは呼び出し元の配列を直接変更し、doubleArrayAndReturnNew メソッドは新しい配列を作成して返します。

「008 メソッド」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2425/feed 0
008 メソッド (参照型の引数を持つメソッド)017 解答例 https://minner.asia/archives/2412 https://minner.asia/archives/2412#respond Fri, 24 Nov 2023 01:54:10 +0000 http://localhost/?p=2412
public class StringManipulator {
    public static String reverseString(String input) {
        // StringBuilder を使用して文字列を逆順に変更
        StringBuilder reversed = new StringBuilder(input);
        reversed.reverse();
        return reversed.toString();
    }

    public static void main(String[] args) {
        // メソッドの使用例
        String original = "Hello, Java!";
        String reversed = reverseString(original);
        System.out.println("Original: " + original);
        System.out.println("Reversed: " + reversed);
    }
}

この例では、reverseString メソッドが StringBuilder を使用して与えられた文字列を逆順に変更し、その結果を返しています。main メソッドでは、このメソッドを使用して文字列を逆順に変更しています。プログラムを実行すると、元の文字列と逆順に変更された文字列が表示されます。

参照渡しされた文字列の変更(はできない)

Javaにおいて文字列はイミュータブル(不変)であるため、メソッドに渡された文字列を直接変更することはできません。しかし、新しい文字列を生成してそれを返すことで、元の文字列を変更するような効果を得ることができます。

以下に、新しい文字列を生成して返す方法を具体的なコード例とともに解説します。

public class StringModifier {

    // 文字列にサフィックスを追加して新しい文字列を返すメソッド
    public static String addSuffix(String input, String suffix) {
        // 新しい文字列を生成して返す
        return input + suffix;
    }

    // 文字列を大文字に変換して新しい文字列を返すメソッド
    public static String capitalize(String input) {
        // 新しい文字列を生成して返す
        return input.toUpperCase();
    }

    public static void main(String[] args) {
        // 使用例
        String original = "example";
        String modified1 = addSuffix(original, "_suffix");
        String modified2 = capitalize(original);

        // 元の文字列は変更されず、新しい文字列が生成されている
        System.out.println("Original: " + original);
        System.out.println("Modified 1: " + modified1);
        System.out.println("Modified 2: " + modified2);
    }
}

この例では、addSuffix メソッドと capitalize メソッドが新しい文字列を生成して返すようになっています。呼び出し元で元の文字列が変更されないことが確認できます。

新しい文字列を生成することで、元の文字列を変更せずに処理を行うことができます。このアプローチは安全であり、イミュータブル性を維持する上で重要です。

「008 メソッド」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2412/feed 0
008 メソッド (参照型の引数を持つメソッド)016 解答例 https://minner.asia/archives/2402 https://minner.asia/archives/2402#respond Fri, 24 Nov 2023 01:41:10 +0000 http://localhost/?p=2402
public class Person {
    private String name;

    // コンストラクタ
    public Person(String name) {
        this.name = name;
    }

    // name 属性のゲッター
    public String getName() {
        return name;
    }

    // changeName メソッド
    public void changeName(String newName) {
        this.name = newName;
    }

    public static void main(String[] args) {
        // Person オブジェクトの作成
        Person person = new Person("John");

        // 初期の名前を表示
        System.out.println("Initial Name: " + person.getName());

        // changeName メソッドを使用して名前を変更
        person.changeName("Jane");

        // 変更後の名前を表示
        System.out.println("Changed Name: " + person.getName());
    }
}

この例では、Person クラスに name 属性があり、changeName メソッドが提供されています。main メソッド内で Person オブジェクトを作成し、初期の名前を表示してから changeName メソッドを使用して名前を変更し、変更後の名前を再度表示しています。

オブジェクトの属性変更

「オブジェクトの属性変更」とは、オブジェクト内の属性(フィールドやメンバ変数など)の値を変更することを指します。オブジェクト指向プログラミングでは、オブジェクトが持つ状態はその属性によって表現されます。そのため、オブジェクトの属性を変更することは、オブジェクトの状態を変更することにつながります。

以下に、「オブジェクトの属性変更」の例として、Javaのクラスとメソッドを使用してオブジェクトの属性を変更するプロセスを解説します。

1.クラスの定義:

オブジェクトの設計図としてクラスを定義します。クラスには属性(フィールド)と振る舞い(メソッド)が含まれます。

public class Person {
    private String name;  // 属性としての名前

    // コンストラクタや他のメソッドも含めてクラスを定義
}

2.属性の初期化:

クラス内で定義した属性を初期化します。これは通常、コンストラクタやメソッドを介して行います。

public Person(String initialName) {
    this.name = initialName;  // 初期の名前を設定
}

3.属性の取得:

クラス内で定義した属性の値を取得するためのゲッターメソッドを作成します。

public String getName() {
    return name;  // 名前を取得
}

4.属性の変更:

クラス内で定義した属性の値を変更するためのメソッドを作成します。

public void changeName(String newName) {
    this.name = newName;  // 名前を変更
}

5.オブジェクトの生成と属性変更:

クラスを元にオブジェクトを生成し、オブジェクトの属性を変更します。

public static void main(String[] args) {
    Person person = new Person("John");  // Personオブジェクトの生成
    System.out.println("Initial Name: " + person.getName());

    person.changeName("Jane");  // 名前の変更
    System.out.println("Changed Name: " + person.getName());
}

この例では、Person クラスを定義し、その中で name という属性を持ち、changeName メソッドを使ってその属性を変更しています。プログラムの出力結果は、初期の名前と変更後の名前が表示されます。これにより、オブジェクトの属性が変更されたことが確認できます。

「008 メソッド」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2402/feed 0
008 メソッド (複数の引数を持つメソッド)015 解答例 https://minner.asia/archives/2394 https://minner.asia/archives/2394#respond Thu, 23 Nov 2023 00:44:23 +0000 http://localhost/?p=2394
public class StringConcatenator {

    public static String concatenateStrings(String str1, String str2, String str3) {
        // 3つの文字列を結合して返す
        return str1 + str2 + str3;
    }

    public static void main(String[] args) {
        // メソッドの呼び出し例
        String resultString = concatenateStrings("Hello", ", ", "Java!");
        System.out.println(resultString);
    }
}

この例では、concatenateStrings メソッドが3つの文字列を結合して返し、main メソッドで結果を表示しています。 + 演算子を使用して文字列を結合しています。

「008 メソッド」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2394/feed 0
008 メソッド (複数の引数を持つメソッド)014 解答例 https://minner.asia/archives/2386 https://minner.asia/archives/2386#respond Thu, 23 Nov 2023 00:38:10 +0000 http://localhost/?p=2386

if-else文を使った解答例

public class GradeCalculator {

    public static String calculateGrade(int score) {
        if (score >= 90) {
            return "A";
        } else if (score >= 80) {
            return "B";
        } else if (score >= 70) {
            return "C";
        } else if (score >= 60) {
            return "D";
        } else {
            return "F";
        }
    }

    public static void main(String[] args) {
        // メソッドの呼び出し例
        int testScore = 75;
        String grade = calculateGrade(testScore);
        System.out.println("成績: " + grade);
    }
}

この例では、calculateGrade メソッドがテストの得点に応じて成績を計算し、main メソッドで結果を表示しています。if-else 文を使用して各条件に基づいて判定しています。

switch文を使った解答例

public class GradeCalculator {

    public static String calculateGrade(int score) {
        String grade;
        switch (score / 10) {
            case 10:
            case 9:
                grade = "A";
                break;
            case 8:
                grade = "B";
                break;
            case 7:
                grade = "C";
                break;
            case 6:
                grade = "D";
                break;
            default:
                grade = "F";
                break;
        }
        return grade;
    }

    public static void main(String[] args) {
        // メソッドの呼び出し例
        int testScore = 75;
        String grade = calculateGrade(testScore);
        System.out.println("成績: " + grade);
    }
}

この例では、calculateGrade メソッドがテストの得点に応じて成績を計算し、main メソッドで結果を表示しています。switch 文を使用してテストの得点を評価し、各ケースに基づいて成績を設定しています。

「008 メソッド」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2386/feed 0