🔖
javaメソッドメモ
1. Setの意味
Set<String> seen = new HashSet<>();
Set は Java のコレクションフレームワークの一つです。リスト(List)とは異なり、Set は順序を保持しないコレクションであり、重複を許さないという特徴があります。
Set に同じ要素を何度追加しても、最初の一回しか追加されません。例えば、"A" を2回追加しても、セットの中には "A" は1回しか存在しません。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int q = Integer.parseInt(sc.nextLine()); // 数字
String w = sc.nextLine(); // "A B A B A"
String[] f = w.split(" "); // ["A", "B", "A", "B", "A"]
Set<String> seen = new HashSet<>(); // 重複を防ぐためにSetを使う
for (int i = 0; i < q; i++) {
seen.add(f[i]); // 重複した要素は無視される
}
System.out.println(seen.size()); // Setのサイズが異なる文字列の数
}
}
StringBuilderとindexOf()/charAt()
charAt()=取り出す
文字列"あいうえお"からcharAt(0)なら"あ"を取り出す
indexOf()=検索して番号返す。あれば要素番号・なけらば-1返す
value = "あいうえお"
value.indexOf(う) => 2
value.indexOf(か) => -1
// Torvaldsから母音抜いてTrvldsに変換
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
String vowels = "aeiouAEIOU";
StringBuilder a = new StringBuilder();
for (int i =0; i < line.length(); i++){ // length=8
char c = line.charAt(i); // charaAt()は取り出す
if(vowels.indexOf(c) == -1){ // indexOf()は()内の要素を検索してあればインデックス番号・なければ-1返す
a.append(c); // 子音なら追加
}
}
System.out.println(a);// Trvlds
}
}
Math.abs(a - b);
Math.abs(a - b);
は、Javaで絶対値を求めるメソッドです。
int a = 3;
int b = 7;
System.out.println(Math.abs(a - b)); // → 4
a = 7;
b = 3;
System.out.println(Math.abs(a - b)); // → 4
順番に数字を取得して配列に格納したい
3 // 1個目は数字何個か 3個とってね
3 // 1個目の要素
1 // 2個目の要素
4 // 3個目の要素
int n = Integer.parseInt(sc.nextLine()); // 例えば 3回
int[] numbers = new int[n];
for (int i = 0; i < n; i++) {
numbers[i] = Integer.parseInt(sc.nextLine());
}
連続する文字を 1つにする
String l = "--ai-u---eo";
String c = l.replaceAll("-+", "-"); // "-"が1回以上続く → "-"に置き換える
System.out.println(c); // 出力: "-ai-u-eo"
Math.min()とMath.max()
Math.min(a, b)
は、引数a
とb
の小さい方の値を返すJava標準ライブラリのメソッド。
int min = Math.min(10, 20); // min は 10 になる
int min2 = Math.min(30, 5); // min2 は 5 になる
int min = Integer.MAX_VALUE; // 初期値として最大値を設定⇒必ず小さくなっていくから
int max = Integer.MIN_VALUE; // 初期値として最小値を設定⇒必ず大きくなっていくから
// 各日について処理
for (int i = 0; i < days; i++) {
// dayTimeを計算する部分(例: start + flight + (24 - end))
int dayTime = calculateDayTime();
// 最小値の更新
min = Math.min(min, dayTime);
// 最大値の更新
max = Math.max(max, dayTime);
}
// 最終的に最小値と最大値を出力
System.out.println(min); // 最小値
System.out.println(max); // 最大値
タイトル
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int days = Integer.parseInt(sc.nextLine());
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
for (int i = 0; i < days; i++) {
String[] parts = sc.nextLine().split(" ");
int start = Integer.parseInt(parts[0]);
int flight = Integer.parseInt(parts[1]);
int end = Integer.parseInt(parts[2]);
int dayTime = start + flight + (24 - end);
min = Math.min(min, dayTime);
max = Math.max(max, dayTime);
}
System.out.println(min);
System.out.println(max);
}
}
Discussion