package com.sunday.g_strings;
import com.google.common.base.Splitter;
import com.google.common.base.Strings;
import com.google.common.collect.*;
import com.google.common.io.Files;
import java.io.File;
import java.util.List;
import java.util.Map;
public class GStrings {
public static void str() {
// 获取字串前缀
System.out.println(Strings.commonPrefix("as","a"));
// 重复字串
System.out.println(Strings.repeat("s",3));
// 追加字符知道 string 长度大于等于 minLength
System.out.println(Strings.padStart("asd",9,'s'));
}
public static void col() {
// 初始化list
List<String> list = Lists.newArrayList();
// 在list首追加
List<String> lists = Lists.asList("s",new String[]{"d"});
List<String> listss = Lists.asList("s","d",new String[]{"f"});
// 不变Collection的创建
ImmutableList<String> iList = ImmutableList.of("a", "b", "c");
System.out.println(iList);
// map中包含key为String value为List类型
Multimap<String,Integer> map = ArrayListMultimap.create();
map.put("aa", 1);
map.put("aa", 2);
System.out.println(map.get("aa")); //[1, 2]
//use guava
String str = "1-2-3-4-5-6";
List<String> liststr = Splitter.on("-").splitToList(str);
//list为 [1, 2, 3, 4, 5, 6]
System.out.println(liststr);
// 忽略中间的空格 使用 "-" 切分字符串并去除空串与空格== omitEmptyStrings().trimResults() 去除空串与空格
String strs = "1-2-3-4- -5- 6 ";
List<String> listxtrs = Splitter.on("-").omitEmptyStrings().trimResults().splitToList(str);
System.out.println(listxtrs);
// 将String转换为map
String strmap = "xiaoming=11,xiaohong=23";
Map<String,String> mapstr = Splitter.on(",").withKeyValueSeparator("=").split(strmap);
System.out.println(mapstr);
}
public static void file(){
// 遍历文件夹 当前目录
Iterable<File> fileTreeTraverser = Files.fileTreeTraverser().children(new File("D:\\迅雷下载"));
fileTreeTraverser.forEach(c->{
//if (c.isFile()) {
System.out.println(c);
//}
});
// 广度优先遍历 包括子文件夹
FluentIterable<File> fluentIterable = Files.fileTreeTraverser().breadthFirstTraversal(new File("D:\\迅雷下载"));
//fluentIterable.stream().forEach(c-> System.out.println(c));
// 后序遍历
FluentIterable<File> fluentIterablep = Files.fileTreeTraverser().postOrderTraversal(new File("D:\\迅雷下载"));
//fluentIterablep.stream().forEach(c-> System.out.println(c));
// 前序遍历
FluentIterable<File> fluentIterablepre = Files.fileTreeTraverser().preOrderTraversal(new File("D:\\迅雷下载"));
fluentIterablepre.stream().forEach(c-> System.out.println(c));
}
}