「130」や「1245」など、軍の時間を表す3〜4個の数字を含む文字列時間を使用するメソッドに取り組んでいます。このメソッドの目的は、文字列時間の内容を2つの部分からなる整数配列に割り当てることです。[0]は時間(上記の例の「1」や「12」など)であり、[1]は分(私の例では「30」または「45」)。
if(str.length()== 3)は、「130」などの文字列をキャッチするためのものです。この場合、時間は10未満であり、文字列には先行ゼロがありません。
コンパイルすると、エラーが表示されます。
error: incompatible types
temp = a[1] + a[2];
^
required: String
found: int
。
error: incompatible types
temp = a[0] + a[1];
^
required: String
found: int
。
error: incompatible types
temp = a[2] + a[3];
^
required: String
found: int
。
私はcharデータ型を読んでいますが、私が理解していることから、それは整数に似た数値を持っています。私は次のように型キャストしようとしました:
temp = (String) a[1] + a[2];
ただし、次のエラーが発生します。
error: inconvertible types
temp = (String) a[1] + a[2];
^
required: String
found: char
この時点で、私は何をすべきかわかりません。以下は私のコードです:
private int[] convertStringToHoursMins(String time) {
String str = time;
String temp;
char[] a = str.toCharArray();
int[] hoursMins = new int[2];
try {
if (str.length() == 3) {
hoursMins[0] = a[0];
temp = a[1] + a[2];
hoursMins[1] = Integer.parseInt(temp);
}
else {
temp = a[0] + a[1];
hoursMins[0] = Integer.parseInt(temp);
temp = a[2] + a[3];
hoursMins[1] = Integer.parseInt(temp);
}
}
catch(NumberFormatException e) {
System.out.println("Invalid time.");
}
return hoursMins;
}
あなたが提供できるどんな助けにも前もって感謝します。