[[Javaメモ]] > GoogleGuava
* GoogleGuava [#bf24d452]

&color(red){書きかけの記事};

#contents

** Strings [#n0ddd6df]
#mycode(){{
package example;

import com.google.common.base.Strings;

public class SampleStrings {

	public static void main(String[] args) {

		{
			// null または 空文字の判定
			System.out.println("--- isNullOrEmpty ---");
			String strNull     = null;
			String strEmpty    = "";
			String strNotEmpty = "abc";
			String[] strAll = {strNull, strEmpty, strNotEmpty };

			for (String str : strAll) {
				if (Strings.isNullOrEmpty(str)){
					System.out.println("is null or empty(" + str + ")");
				} else {
					System.out.println("is not null And not empty(" + str + ")");
				}
			}
		}

		{
			// 空文字をnullに変換
			System.out.println("--- emptyToNull ---");
			String bef = "";
			String aft = Strings.emptyToNull(bef);
			System.out.println("\""+bef +"\"" + "->" + aft);
		}

		{
			// nullを空文字に変換
			System.out.println("--- nullToEmpty ---");
			String bef = null;
			String aft = Strings.nullToEmpty(bef);
			System.out.println(bef + "->" + "\"" + aft + "\"");
		}

		{
			// 指定した文字列を指定回数繰り返した文字列を作成
			System.out.println("--- repeat ---");
			String str = Strings.repeat("abc", 3);
			System.out.println(str);
		}

		{
			// 左パディング
			System.out.println("--- padStart ---");
			String str = Strings.padStart("123", 5, '0');
			System.out.println(str);
		}

		{
			// 右パディング
			System.out.println("--- padEnd ---");
			String str = Strings.padEnd("123", 5, '0');
			System.out.println(str);
		} 
	} 
} 
}}

** CaseFormat [#c828b8d7]
#mycode(){{
package example;

import com.google.common.base.CaseFormat;

public class SampleCaseFormat {

	public static void main(String[] args) {

		{
			// LowerキャメルケースをUPPERスネークケースへ
			String str1 = CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE, "testString");
			System.out.println(str1);

			// UpperキャメルケースをUPPERスネークケースへ
			String str2 = CaseFormat.UPPER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE, "TestString");
			System.out.println(str2);

			// UPPERスネークケースをLowerキャメルケースへ
			String str3 = CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "TEST_STRING");
			System.out.println(str3);

			// UPPERスネークケースをUpperキャメルケースへ
			String str4 = CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, "TEST_STRING");
			System.out.println(str4);
		} 
		
	} 
} 
}}

** Lists [#j468eb7d]

#mycode(){{
package example;

import java.util.List;

import com.google.common.collect.Lists;

public class SampleLists {

	public static void main(String[] args) {

		// 初期値を指定してリストを初期化
		System.out.println("--- 初期値を指定してリストを初期化 ---");
		List<String> strList1 = Lists.newArrayList("a","b","c");
		int i = 0;
		for (String str : strList1) {
			System.out.println(++i + ":" + str);
		}

		// String配列からListに変換
		System.out.println("--- String配列からListに変換 ---");
		String[] strAry = {"a", "b", "c"};
		List<String> strList2 = Lists.newArrayList(strAry);
		i = 0;
		for (String str : strList2) {
			System.out.println(++i + ":" + str);
		} 
	} 
} 
}}

** Joiner [#f8e367cb]

#mycode(){{
package example;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.google.common.base.Joiner;
import com.google.common.collect.Lists;

public class SampleJoiner {

	public static void main(String[] args) {

		// String配列を結合
		String[] strAry = {"a","b","c"};
		String strJoin1 = Joiner.on(",").join(strAry);
		System.out.println(strJoin1);

		// Listを結合
		List<String> strList = Lists.newArrayList("a","b","c");
		String listJoined = Joiner.on(",").join(strList);
		System.out.println(listJoined);

		// Mapを結合
		Map<String, String> map = new HashMap<String,String>();
		map.put("key1", "val1");
		map.put("key2", "val2");
		map.put("key3", "val3");
		String mapJoined = Joiner.on(",").withKeyValueSeparator(":").join(map);
		System.out.println(mapJoined);
	} 
} 
}}


** Files [#j0721017]
#mycode(){{
package example;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
import java.util.List;

import com.google.common.base.Charsets;
import com.google.common.io.Files;

public class SampleFiles {

	public static void main(String[] args) throws IOException {

		File file1 = new File(path_to_file);
		File file2 = new File(path_to_file);

		// BufferedReaderの作成
		{
			System.out.println("--- BufferedReaderの作成 ---");
			BufferedReader reader = Files.newReader(file1, Charsets.UTF_8);
			int i = 0;
			String line = null;
			while ((line = reader.readLine()) != null) {
				System.out.println(++i + ":" + line);
			}
		}

		// ファイルを一括で読み込んでListに格納
		{
			System.out.println("--- ファイルを一括で読み込んでListに格納 ---");
			List<String> lines = Files.readLines(file1, Charsets.UTF_8);
			int i = 0;
			for (String line : lines) {
				System.out.println(++i + ":" + line);
			}
		}

		{
			// ファイルを読み込んでバイト配列に格納
			System.out.println("--- ファイルを読み込んでバイト配列に格納 ---");
			byte[] bytes = Files.toByteArray(file1);
			String hexStr = toHexString(bytes);
			System.out.println(hexStr);
			// java.nio.file.Files.readAllBytes(path);
		}
		
		{
			// BufferedWriterの作成
			BufferedWriter writer = Files.newWriter(file2, Charsets.UTF_8);
			writer.append("追加行1\n");
			writer.flush();
			writer.close();
		}

		{
			// ファイルにデータ追加
			Files.append("追加行2\n", file2, Charsets.UTF_8);
		}

		// TODO: copy
		// TODO: InputStreamの内容をファイルに書く
		// TODO: Readerの内容をファイルに書く

	}

	private static String toHexString(byte[] bytes){
		StringBuilder sb = new StringBuilder();
		long len = bytes.length;
		for (int i = 0; i < len; i++) {
			String str = Integer.toHexString(bytes[i] & 0xff);
			if (str.length() < 2) {
				sb.append("0");
			}
			sb.append(str);
		}
		return sb.toString();
	} 
} 
}}

** BaseEncoding [#jd477dc3]

#mycode(){{
package example;

import java.io.File;
import java.io.IOException;

import com.google.common.io.BaseEncoding;
import com.google.common.io.Files;

public class SampleBaseEncoding {

	public static void main(String[] args) throws IOException {

		// 画像ファイルの内容をBase64エンコーディング文字列に変換;
		byte[] bytes = Files.toByteArray(new File(path_to_image_file));
		String base64Image = BaseEncoding.base64().encode(bytes);
		System.out.println(base64Image);
	} 
} 
}}


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS