Category Archives: Java

「Java入門」clone()でオブジェクトを複製する

javaコード
class Student implements Cloneable {
private int stuNo;
private String stuAddress;
private Date regDate;

/**
* クラスのinstanceを複製する
*/
public Object clone() {
try {
Student cft = (Student) super.clone();
cft.setRegDate(xxx);
return cft;
} catch (CloneNotSupportedException e) {
// 処理コード
}
}
}

Student stu1 = new Student(15, “tokyo shibuya”, ‘1982/04/01’);
Student stu2 = (Student) stu1.clone();

「Java入門」java.time.LocalDateのサンプル

1.Javaコード
import java.time.LocalDate;
import java.time.Month;
import java.time.MonthDay;
import java.time.Year;
import java.time.format.TextStyle;
import java.util.Locale;

public class MonthDemo {

public static void main(String[] args) {
MonthDay dec25 = MonthDay.of(Month.DECEMBER, 25);
Year year = Year.now();

for (int i = 1; i <= 5; i++) {
LocalDate ld = year.plusYears(i).atMonthDay(dec25);
int yr = ld.getYear();
String weekDay = ld.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.getDefault());
System.out.format(“クリスマス %d is on %s.%n”, yr, weekDay);
}

}

}
2.結果
クリスマス 2018 is on 火曜日.
クリスマス 2019 is on 水曜日.
クリスマス 2020 is on 金曜日.
クリスマス 2021 is on 土曜日.
クリスマス 2022 is on 日曜日.

「Java入門」instanceofでobjectとnullを比較する

サンプル
package test;
public class InstanceObjDemo {

public static void main(String[] args) {
final Object cft = null;

if (cft instanceof Object) {
System.out.println(“オブジェクト”);
} else {
System.out.println(“オブジェクトではない”);
}

}
}

結果
オブジェクトではない

java.text.SimpleDateFormat.SimpleDateFormatクラスの使い方

Javaコード
package com.arkgame.study;
import java.text.SimpleDateFormat;
import java.util.Date;

public class CurrentTimeDemo {

public static void main(String[] args) {
long currentTime = System.currentTimeMillis();

SimpleDateFormat fmt = new SimpleDateFormat(“yyyy’年’MM’月’dd’日’-HH’時’mm’分’ss’秒'”);

Date date = new Date(currentTime);

System.out.println(fmt.format(date));

}

}
結果
2018年03月17日-11時09分31秒

「Java入門」java.util.Map.put()のサンプル

1.Javaコード
import java.util.HashMap;
import java.util.Map;

public class MethodMapDemo {

public static void main(String[] args) {
Map<String, String> cft = new HashMap<>();

// Mapにキーと値を格納
cft.put(“kk1”, “data AA”);
cft.put(“kk2”, “data BB”);
cft.put(“kk3”, “data CC”);

// Mapからデータを取得する
System.out.println(cft.get(“kk1”));
System.out.println(cft.get(“kk2”));
System.out.println(cft.get(“kk3”));

}

}

2.結果
data AA
data BB
data CC

mavenプロジェクトで Main Class を実行する方法

実行方法
mvn compile
mvn exec:java -Dexec.mainClass=”com.vineetmanohar.module.Main”
mvn exec:java -Dexec.mainClass=”com.vineetmanohar.module.Main” -Dexec.args=”arg0 arg1 arg2″

「Java開発」文字列の半角/全角を相互変換するサンプル

サンプルコード
public class HalfToFullDemo {

/**
* 半角を全角に変換
*
* @param strTarget
* String.
* @return 全角文字列.
*/
public static String HalfToFull(String strTarget) {
char c[] = strTarget.toCharArray();
for (int i = 0; i < c.length; i++) {
if (c[i] == ‘ ‘) {
c[i] = ‘\u3000’;
} else if (c[i] < ‘\177’) {
c[i] = (char) (c[i] + 65248);

}
}
String result = new String(c);
return result;
}

/**
* 全角を半角に変換
*
* @param strTarget
* String.
* @return 半角文字列
*/
public static String FullToHalf(String strTarget) {

char c[] = strTarget.toCharArray();
for (int i = 0; i < c.length; i++) {
if (c[i] == ‘\u3000’) {
c[i] = ‘ ‘;
} else if (c[i] > ‘\uFF00’ && c[i] < ‘\uFF5F’) {
c[i] = (char) (c[i] – 65248);

}
}
String result = new String(c);

return result;
}

public static void main(String[] args) {
String cft = “tokyo city”;

String cft1 = “TOKYO CITY”;

String result = HalfToFull(cft);

String result1 = FullToHalf(cft1);

System.out.println(cft + “\n” + result);
System.out.println(“**********************”);
System.out.println(cft1 + “\n” + result1);

}

}

結果
tokyo city
tokyo city
**********************
TOKYO CITY
TOKYO CITY

java.util.regex.Pattern.MULTILINEのサンプルコード

javaコード
package com.arkgame.study;

import java.util.function.Supplier;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MultiLineDemo {

public static void main(String[] args) {
multiFunc(“複数行の文字列”, () -> Pattern.compile(“^[a-z]+$”, Pattern.MULTILINE));

}

private static void multiFunc(String label, Supplier<Pattern> patternSupplier) {

Pattern pattern = patternSupplier.get();

String strTt = “abcde\n” + “uuukkk\n”;

Matcher matcher = pattern.matcher(strTt);
System.out.println(label);

while (matcher.find()) {
String group = matcher.group();
System.out.println(group);
}
}
}

結果
複数行の文字列
abcde
uuukkk

「Java入門」ZIPファイルをリストに変換するサンプル

Javaコード
ZipFile zip = null;
zip = new ZipFile(“example.zip”);
Enumeration<? extends ZipEntry> cft=zip.entries();
List<String> lst=new ArrayList<String>();
while(cft.hasMoreElements()){
lst.addAll(zipListFile((ZipEntry)cft.nextElement()));
}

「Java入門」java.time.LocalDate.plusとjava.time.LocalDate.minusのサンプル

サンプルコード:
package procft;
import java.time.LocalDate;
import java.time.Period;

public class LocalDateDemo {

public static void main(String[] args) {
// 加減算
LocalDate testDate1 = LocalDate.of(2018, 7, 25);
System.out.println(testDate1 + “の1日後: ” + testDate1.plusDays(1));
System.out.println(testDate1 + “の15日後: ” + testDate1.plusDays(15));
System.out.println(testDate1 + “の3日前: ” + testDate1.minusDays(3));
System.out.println(testDate1 + “の15日前: ” + testDate1.minusDays(15));

LocalDate cftDate2 = LocalDate.of(2018, 8, 19);
System.out.println(cftDate2 + “の7日後: ” + cftDate2.plus(Period.ofDays(7)));
System.out.println(cftDate2 + “の13日前: ” + cftDate2.minus(Period.ofDays(13)));
}

}

結果
2018-07-25の1日後: 2018-07-26
2018-07-25の15日後: 2018-08-09
2018-07-25の3日前: 2018-07-22
2018-07-25の15日前: 2018-07-10
2018-08-19の7日後: 2018-08-26
2018-08-19の13日前: 2018-08-06