はじめに
自分用の備忘録
問題
A - Spoiler , トヨタ自動車プログラミングコンテスト2024#3(AtCoder Beginner Contest 344)
解答例
import java.util.*; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String S = sc.next(); String[] splitedStrings = S.split("\\|"); for (int i = 0; i < splitedStrings.length; i++) { // ここで真ん中の文字を抜くという処理をしています。 if (i != 1) { System.out.print(splitedStrings[i]); } } } }
ポイント
特にないですかね。。 強いて言うなら、splitするときの引数は気を付けないといけないかもです!
少し解説。わかりにくいですが、、。
S.split("\|"); は、Javaの文字列 S をパイプ記号 | で分割する操作です。ここで、\| は正規表現としてパイプ記号をエスケープしていることに注意してください。
具体的には、次のように説明できます:
S は分割したい文字列です。 split("\|") は、S をパイプ記号 | で分割するメソッドです。 例えば、以下のような文字列があった場合:
String S = "apple|banana|cherry"; String[] result = S.split("\\|");
result 配列には次のような要素が格納されます:
result[0] は "apple" result[1] は "banana" result[2] は "cherry"
解答例 その2
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String s = scanner.next(); int x = s.indexOf("|"); // 先頭から見て最初に '|' が現れる位置 int y = s.lastIndexOf("|"); // 末尾から見て最初に '|' が現れる位置 System.out.println(s.substring(0, x) + s.substring(y + 1)); scanner.close(); } }
解答例 その2 解説
このJavaコードは、ユーザーからの入力文字列に対して特定の操作を行うプログラムです。以下に、各行の詳細な説明を提供します。
import java.util.Scanner;
JavaのScannerクラスをインポートします。これは、ユーザーからの入力を読み取るために使用されます。public class Main {
Mainという名前の公開クラスを定義します。Javaプログラムは、このようなクラス内部で実行されます。public static void main(String[] args) {
Javaプログラムのエントリーポイントであるmainメソッドを定義します。このメソッドは、プログラムが開始するときに最初に呼び出されます。Scanner scanner = new Scanner(System.in);
新しいScannerオブジェクトを作成し、それをscannerという名前の変数に割り当てます。このオブジェクトは、標準入力(通常はキーボード)からの入力を読み取るために使用されます。String s = scanner.next();
ユーザーからの次の入力を読み取り、それをsという名前の文字列に保存します。int x = s.indexOf("|");
文字列s内で最初に'|'
が現れる位置を見つけ、そのインデックスをxという名前の整数に保存します。int y = s.lastIndexOf("|");
文字列s内で最後に'|'
が現れる位置を見つけ、そのインデックスをyという名前の整数に保存します。System.out.println(s.substring(0, x) + s.substring(y + 1));
文字列sの最初の部分(インデックス0からxまで)と最後の部分(インデックスy+1から最後まで)を取り出し、それらを連結して出力します。scanner.close();
Scannerオブジェ