目次

Java

環境変数の参照

Getenv.java
import java.util.Map;
 
public class Getenv{
    public static void main(String args[]){
        for (Map.Entry<String, String> env : System.getenv().entrySet()) {
            System.out.println(env.getKey() + " : " + env.getValue());
        }
    }
}

変数ダンプ

VarDump.java
import org.apache.commons.lang.builder.ToStringBuilder;
 
public class VarDump{
    public static void main(String args[]){
        System.out.println(ToStringBuilder.reflectionToString(args));
    }
}

ファイル入出力

FileInputOutput.java
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
 
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.BufferedWriter;
import java.io.PrintWriter;
 
import java.io.IOException;
 
public class FileInputOutput {
    public static void main(String[] args) {
        try {
            String input = "unko.txt";
            String inputEncoding = "UTF-8";
 
            String output = "unko2.txt";
            String outputEncoding = "UTF-8";
 
            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(input), inputEncoding));
            PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(output), outputEncoding))); 
 
            String line = "";
            while ((line = br.readLine()) != null) {
                pw.println(line);
            }
            br.close();
            pw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

プロパティファイルの読み込み

PropertyFile.java
import java.util.Properties;
import java.io.FileInputStream;
 
public class PropertyFile{
    public static void main(String args[]){
        try {
            Properties prop = new Properties();
            prop.load(new FileInputStream("application.ini"));
            for (String propertyName : prop.stringPropertyNames()) {
                System.out.println(propertyName);
                System.out.println(prop.getProperty(propertyName));
            }
        } catch (Exception e){
            e.printStackTrace();
        }
    }
}
application.ini
hoge=fuga
hello=world

XPathでXMLの読み込み

UseXPath.java
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
 
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
 
public class UseXPath{
    public static void main(String args[]){
        XPath xpath = XPathFactory.newInstance().newXPath();
        InputSource inputSource = new InputSource("test.xml");
        String expression = "//test/unko[@id='hello']";
 
        try {
            NodeList nodes = (NodeList) xpath.evaluate(expression, inputSource, XPathConstants.NODESET);
            for (int i = 0; i < nodes.getLength(); i++) {
                Node node = nodes.item(i);
                String str = node.getTextContent();
                System.out.println(str);
            }
        } catch (XPathExpressionException e) {
            e.printStackTrace();
        }
    }
}
test.xml
<?xml version="1.0" encoding="UTF-8"?>
<test>
  <unko id="hello">001</unko>
  <unko id="world">002</unko>
</test>

正規表現を用いたパターンマッチ

RegexPatternMatch.java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class RegexPatternMatch{
    public static void main(String[] args) {
        String str = "Hello, World";
 
        Matcher matcher = Pattern.compile("(.+?), (.+?)$").matcher(str);
        if (matcher.find()){
            System.out.println(matcher.group(1)); //Hello
            System.out.println(matcher.group(2)); //World
        }
    }
}

正規表現を用いた文字列置換

RegexReplaceString.java
import java.util.regex.Pattern;
 
public class RegexReplaceString{
    public static void main(String[] args) {
        String str = "Hello, unko";
 
        // unko -> World
        System.out.println(Pattern.compile("(unko)$").matcher(str).replaceFirst("World"));
 
        // unko -> World
        System.out.println(str.replaceAll("(unko)$", "World"));
    }
}

拡張子指定ファイル一覧

ListFiles.java
import java.io.File;
import java.io.FilenameFilter;
 
public class ListFiles{
    public static void main(String args[]){
        File directory = new File(args[0]);
        for(File file : directory.listFiles(getRegexFilter(".*\\.xls"))){
            System.out.println(file.getAbsolutePath());
        }
    }
 
    private static FilenameFilter getRegexFilter(String regex) {
        final String regex_ = regex;
        return new FilenameFilter() {
            public boolean accept(File dir, String name) {
                return name.matches(regex_);
            }
        };
    }
}

シャローコピー(参照のコピー)による配列長の拡張

ArrayCopy.java
public class ArrayCopy{
    public static void main(String args[]){
        String[] array = new String[3];
        array[0] = "0";
        array[1] = "1";
        array[2] = "2";
 
        String[] new_array = new String[array.length+1];
 
        //「array(引数1)」の「0(引数2)」番目から「array.length(引数5)」分を「new_array(引数3)」の「0(引数4)」番目以降にコピーする
        System.arraycopy(array, 0, new_array, 0, array.length);
 
        //new_arrayの最後尾に「3」を追加
        new_array[array.length] = "3";
 
        //実行結果
        //0
        //1
        //2
        //3
        for(String str : new_array){
            System.out.println(str);
        }
    }
}

出力改行コードの指定

NewLineCode.java
public class NewLineCode{
    public static void main(String args[]){
        //Linux,MacOSX : "\n"
        //Windows : "\r\n"
        System.setProperty("line.separator", "\n");
        System.out.println("Hello");
    }
}

型変換

TypeCast.java
public class TypeCast {
    public static void main(String args[]){
        int intType = 10;
        String stringType = "10";
 
        // int -> String
        String a = Integer.toString(intType);
 
        // String -> int
        int b = Integer.parseInt(stringType);
    }
}