質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

解決済

JAVAでコードを短くする

boobooboo
boobooboo

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

2回答

0評価

0クリップ

1030閲覧

投稿2019/04/08 03:01

編集2022/01/12 10:58

JAVAで
String a1 =
String a2 =
のような感じで書いてしまうんですが
for文を使って、まとめたいのですが教えてください。
コード載せます。
よろしくお願いします。

import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.text.DateFormat; import java.text.ParseException; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; public class Main { /* 事前準備(日付計算メソッド) */ public static int differenceDays(String strDate1, String strDate2) throws ParseException { Date date1 = DateFormat.getDateInstance().parse(strDate1); Date date2 = DateFormat.getDateInstance().parse(strDate2); return differenceDays(date1, date2); } public static int differenceDays(Date date1, Date date2) { long datetime1 = date1.getTime(); long datetime2 = date2.getTime(); long one_date_time = 1000 * 60 * 60 * 24; long diffDays = (datetime1 - datetime2) / one_date_time; return (int) diffDays; } public static int differenceMonth(String strDate3, String strDate4) throws ParseException { Date date3 = DateFormat.getDateInstance().parse(strDate3); Date date4 = DateFormat.getDateInstance().parse(strDate4); return differenceMonth(date3, date4); } public static int differenceMonth(Date date3, Date date4) { Calendar cal1 = Calendar.getInstance(); cal1.setTime(date3); cal1.set(Calendar.DATE, 1); Calendar cal2 = Calendar.getInstance(); cal2.setTime(date4); cal2.set(Calendar.DATE, 1); int count = 0; if (cal1.before(cal2)) { while (cal1.before(cal2)) { cal1.add(Calendar.MONTH, 1); count--; } } else { count--; while (!cal1.before(cal2)) { cal1.add(Calendar.MONTH, -1); count++; } } return count; } /* dao呼び出し、データベース読み込み */ public static void main(String[] args) throws IOException, SQLException, ParseException { File file1 = new File("c:\Output"); if (file1.mkdir()) { System.out.println("フォルダの作成に成功しました"); } else { System.out.println("フォルダの作成に失敗しました"); } Connection con = Dao.getConnection(); PreparedStatement pstmt = con.prepareStatement("SELECT* FROM employee_info WHERE employee_id >= ?"); pstmt.setInt(1, 0); ResultSet rs; rs = pstmt.executeQuery(); /* インスタンス化、ファイルの書き出し */ List<Entity> list = new ArrayList<Entity>(); while (rs.next()) { FileWriter f = new FileWriter("C:\Output\before.csv", true); Entity entity = new Entity(); f.write("employee_id"); f.write(","); f.write("name"); entity.setEmployee_id(rs.getInt("employee_id")); list.add(entity); f.write(String.valueOf(entity.getEmployee_id())); f.write(","); entity.setName(rs.getString("name")); list.add(entity); f.write(entity.getName()); f.write(","); entity.setName_hiragana(rs.getString("name_hiragana")); list.add(entity); f.write(entity.getName_hiragana()); f.write(","); entity.setBirthday(rs.getString("birthday")); list.add(entity); f.write(entity.getBirthday()); f.write(","); entity.setSex(rs.getInt("sex")); list.add(entity); f.write(String.valueOf(entity.getSex())); f.write(","); entity.setMail_address(rs.getString("mail_address")); list.add(entity); f.write(entity.getMail_address()); f.write(","); entity.setTelephone_number(rs.getString("telephone_number")); list.add(entity); f.write(entity.getTelephone_number()); f.write(","); entity.setCompany_info_id(rs.getInt("company_info_id")); list.add(entity); f.write(String.valueOf(entity.getCompany_info_id())); f.write(","); entity.setHire_date(rs.getString("hire_date")); list.add(entity); f.write(entity.getHire_date()); f.write(","); entity.setEnrollment_year(rs.getString("enrollment_year")); list.add(entity); f.write(entity.getEnrollment_year()); f.write(","); entity.setEnrollment_month(rs.getString("enrollment_month")); list.add(entity); f.write(entity.getEnrollment_month()); f.write(","); entity.setEnrollment_day(rs.getString("enrollment_day")); list.add(entity); f.write(entity.getEnrollment_day()); f.write(","); f.flush(); f.close(); } rs.close(); pstmt.close(); /* 書き出したファイルの読み込み */ try { File ff = new File( "C:\\Output\\before.csv"); BufferedReader br = new BufferedReader(new FileReader(ff)); String line; // 1行ずつCSVファイルを読み込む while ((line = br.readLine()) != null) { String[] data = line.split(",", 0); // 行をカンマ区切りで配列に変換 Calendar now = Calendar.getInstance(); int year = now.get(now.YEAR); //年を取得 int month = now.get(now.MONTH) + 1; //月を取得 int day = now.get(now.DATE); //日を取得 // キャスト String StrYear = Integer.toString(year); String StrMonth = Integer.toString(month); String StrDay = Integer.toString(day); // 読み込んでリスト化したもので入社日を取り出す String HireDate1 = data[8]; String HireDate2 = data[20]; String HireDate3 = data[32]; String HireDate4 = data[44]; String HireDate5 = data[56]; // 置換 String ReHireDate1 = HireDate1.replace("-", "/"); String ReHireDate2 = HireDate2.replace("-", "/"); String ReHireDate3 = HireDate3.replace("-", "/"); String ReHireDate4 = HireDate4.replace("-", "/"); String ReHireDate5 = HireDate5.replace("-", "/"); // 計算 int day1 = differenceDays(StrYear + "/" + StrMonth + "/" + StrDay, ReHireDate1); int day2 = differenceDays(StrYear + "/" + StrMonth + "/" + StrDay, ReHireDate2); int day3 = differenceDays(StrYear + "/" + StrMonth + "/" + StrDay, ReHireDate3); int day4 = differenceDays(StrYear + "/" + StrMonth + "/" + StrDay, ReHireDate4); int day5 = differenceDays(StrYear + "/" + StrMonth + "/" + StrDay, ReHireDate5); int mon1 = differenceMonth(StrYear + "/" + StrMonth + "/" + StrDay, ReHireDate1); int mon2 = differenceMonth(StrYear + "/" + StrMonth + "/" + StrDay, ReHireDate2); int mon3 = differenceMonth(StrYear + "/" + StrMonth + "/" + StrDay, ReHireDate3); int mon4 = differenceMonth(StrYear + "/" + StrMonth + "/" + StrDay, ReHireDate4); int mon5 = differenceMonth(StrYear + "/" + StrMonth + "/" + StrDay, ReHireDate5); int year1 = mon1 / 12; int YearMonth1 = mon1 % 12; int year2 = mon2 / 12; int YearMonth2 = mon2 % 12; int year3 = mon3 / 12; int YearMonth3 = mon3 % 12; int year4 = mon4 / 12; int YearMonth4 = mon4 % 12; int year5 = mon5 / 12; int YearMonth5 = mon5 % 12; con.setAutoCommit(false); /* 計算したものをデータベース更新 */ pstmt = con.prepareStatement( "UPDATE employee_info SET enrollment_year = ?,enrollment_month = ?,enrollment_day = ? WHERE employee_id = ?"); pstmt.setString(1, year1 + "年" + YearMonth1 + "か月"); if (YearMonth1 == 0){ pstmt.setString(1, year1+ "年"); } pstmt.setInt(2, mon1); pstmt.setInt(3, day1); pstmt.setInt(4, 1); pstmt.executeUpdate(); pstmt.setString(1, year2 + "年" + YearMonth2 + "か月"); if (YearMonth2 == 0){ pstmt.setString(1, year2+ "年"); } pstmt.setInt(2, mon2); pstmt.setInt(3, day2); pstmt.setInt(4, 2); pstmt.executeUpdate(); pstmt.setString(1, year3 + "年" + YearMonth3 + "か月"); if (YearMonth3 == 0){ pstmt.setString(1, year3+ "年"); } pstmt.setInt(2, mon3); pstmt.setInt(3, day3); pstmt.setInt(4, 3); pstmt.executeUpdate(); pstmt.setString(1, year4 + "年" + YearMonth4 + "か月"); if (YearMonth4 == 0){ pstmt.setString(1, year4+ "年"); } pstmt.setInt(2, mon4); pstmt.setInt(3, day4); pstmt.setInt(4, 4); pstmt.executeUpdate(); pstmt.setString(1, year5 + "年" + YearMonth5 + "か月"); if (YearMonth5 == 0){ pstmt.setString(1, year5+ "年"); } pstmt.setInt(2, mon5); pstmt.setInt(3, day5); pstmt.setInt(4, 5); pstmt.executeUpdate();ード

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

m.ts10806
m.ts10806

2019/04/08 03:29

前の質問とタイトルがほとんど同じです。要件を書いてください。 質問は編集できますので、正直なところ、前の質問にコードを追記すれば良かっただけのようにも思います。
swordone
swordone

2019/04/08 04:37

Java8使っちゃいけない縛り?
jimbe
jimbe

2019/04/08 10:34

「できません」ではこちらには何も分かりません. 出来るだけ具体的に, どのような結果を得たいのか, どのようなコードを書いたらどうなったのか, 等を追記して頂けますか. また, 回答にベストアンサーを付けた上で別の質問を追加されては, 終了したのか継続しているのか分かり難くなります. 一つの質問が解決したのでしたら, 別の質問として新たに登録してください. その際はタイトルを単体でも内容が分かる文とし, 古い質問へのリンクを追加して頂ければ, 単独の質問としても, 連続した質問としても機能致します.

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。