环境部署
Eclipse在增强自动补全后有一个相当不友好的地方就是变量名的自动补全,我们习惯性地会按空格跳过,而用自己定义的变量名,但在增强自动补全后,按空格的功能不是跳过而是选中,那怎么办呢?
搜索了下大致是通过修改Eclipse源码实现的:
<转>Eclipse增强自动补全,取消“=”等号和空格自动输入
关联Eclipse源码,安装Eclipse SDK插件
基本常识
示例1:将两个class文件存档到一个名为
classes.jar
的存档文件中:jar cvf classes.jar Foo.class Bar.class
示例2:用一个存在的清单(manifest)文件 ‘mymanifest’ 将 foo/ 目录下的所有
文件存档到一个名为 ‘classes.jar’ 的存档文件中:jar cvfm classes.jar mymanifest -C foo/ .
选中要添加
try..catch
的代码段,然后点击鼠标右键,选择Sourround With选项(取代右击的快捷键:Alt+Shift+z
),如果需要添加finally,则可以光标放在try那一行,然后通过Ctrl+1
来添加。
public static void sortStringArray(String[] arrStr) {
String temp;
for (int i = 0; i < arrStr.length; i++) {
for (int j = arrStr.length - 1; j > i; j--) {
if (arrStr[i].length() > arrStr[j].length()) {
temp = arrStr[i];
arrStr[i] = arrStr[j];
arrStr[j] = temp;
}
}
}
}
1.去重
可以利用Java中的Set集合
2.保持顺序
Set中的LinkedHashSet就是有序的
Arrays.equals(array1,array2)
nextInt中的数值n,生成[0,n)
生成0-2之间的随机数,包括2
Random rand = new Random();
int randNum = rand.nextInt(3);
生成5-26之间的随机数,包括26
int randNum = rand.nextInt(22)+5;
IO
- commons-io之LineIterator
- Java如何正确的使用try catch finally关闭文件流的总结
- 使用FileUtils简化你的文件操作
- [测试]java IO写入文件效率——几种方法比较
Debug
Doubled的无穷小与负无穷
这里可能会有一个定势思维的误区在里面,就是有时候我们初始化一个值,拿java来说,整型想初始化为最小整型,那么Integer.MIN_VALUE
,那如果想初始化一个最小的Double型呢?Double.MIN_VALUE?有,确实有,然而并不能如您所愿,Java中Double的MIN_VALUE是一个大于0的存在,此时需要用到的是Double.NEGATIVE_INFINITY
,而非Double.MIN_VALUE
-
正则表达式$出错,出现Invalid escape sequence (valid ones are \b \t \n \f \r \” \’ \ )
在JAVA中反斜杠本身具有转义的作用,要表示一个正则表达式中的\,必须用\\转 义
实战演练
自己在实现的时候,做了一些小的修改,主要是统计词频所用的HashMap——nums的处理逻辑上: nums.put(string, nums.getOrDefault(string, 0) + 1);
附Python3版的实现代码
import collections
map,nums= {},collections.defaultdict(int)
def createIndex(filePath):
with open(filePath) as reader:
for line in reader:
sarray=line.strip('\n').split(' ')
for s in sarray:
list = []
if s not in map:
list.append(filePath)
map[s]=list
else:
list = map[s]
if filePath not in map[s]:
list.append(filePath)
nums[s]+=1
filePath={各文档路径}
for i in range(1,4):
createIndex(filePath+str(i)+".txt")
for i in map:
print("{key}:{value}".format(key=i,value=map[i]))
for j in nums:
print("{key}:{value}".format(key=j,value=nums[j]))