ご覧いただき、ありがとうございます。
他言語(主にJavaScript, PHP, Pythonなどのスクリプト言語)の経験はありJavaは初心者の者です。
eclipseを使用して文字列をsplitメソッドを使用してリストに分割しようと思ったのですが思ったような挙動をしなく、解決方法がわからず困っています。
どなたか解決方法がわかる方、ご教授いただければ幸いです。
補足が必要な場合は追記いたします。
よろしくお願いいたします。
やりたいこと
- 文字列「2016.8.2」を「20160802」と整形したい。
エラーが起きているコード
Java
1package first; 2 3import java.text.MessageFormat; 4 5public class Main { 6 7 public static void main(String[] args) { 8 // TODO 自動生成されたメソッド・スタブ 9 // ================================================================================ 10 // MAIN 11 // ================================================================================ 12 13 String time = "2016.8.2"; 14 String[] textlist = time.split("."); 15 String year = textlist[0]; 16 String month = String.format("%2s", textlist[1]).replace(" ", "0"); 17 String date = String.format("%2s", textlist[2]).replace(" ", "0"); 18 String text = MessageFormat.format("{0}{1}{2}", year, month, date); 19 } 20 21}
エラー内容
shell
1Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 2 at java_lesson/first.Main.main(Main.java:15)
備考
- textlist配列に無い要素を取り出そうとしていると怒られているので、原因はtime.split(".")が正常に値を返してないと思います。
環境
Windows 10 Home
Chrome 最新版
Eclipse IDE for Enterprise Java and Web Developers version 2021-06
Java SE 11
コードはエディタのものをコピペで提示してください。
行数は不要です。
コピペで再現確認できません。
split のドキュメントは読まれていらっしゃいますでしょうか。
m.ts.10806さん、指摘ありがとうございます。
訂正いたしました。
jimbeさん、はいドキュメントは確認済みです。
ドキュメントを読まれていれば、正規表現の指定であり、正規表現で"."が何を意味するか…という展開になると思うのですが、そのような経過が無くご質問されたのは何故でしょうか。
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html#split-java.lang.String-
「指定された正規表現に一致する位置で分割します。」
jimbe, YT0014さん、本当ですね...すみません、誤認していました。
指摘ありがとうございます。
他の言語の何かと混ざっちゃったのかも知れないですね^^;
スクリプト言語しか経験がなかったので、決まりの多いJavaに少し抵抗を感じて混乱していたかもしれないです。
以後気を付けて頑張ります。
回答3件
あなたの回答
tips
プレビュー