1 (regex+"/"+rule+"(.?)"+ConstantParams.SINGLE_BLANK) 中"(.?)"是什么意思?
后边多一个?表示懒惰模式。
必须跟在*或者+后边用
如:<img src="test.jpg" width="60px" height="80px"/>
如果用正则匹配src中内容非懒惰模式匹配
src=".*"
匹配结果是:src="test.jpg" width="60px" height="80px"
意思是从="往后匹配,直到最后一个"匹配结束
懒惰模式正则:
src=".*?"
结果:src="test.jpg"
因为匹配到第一个"就结束了一次匹配。不会继续向后匹配。
2 实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代表存在相同的字符。保证字符串中的字符为ASCII字符。字符串的长度小于等于3000。
惯常思路就是:(1)得到数据中的内容;(2)遍历比对;
public static boolean checkDifferent(String iniString) {
if (iniString.length() > 256) {
return false;
}
//如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
for (int i = 0; i < iniString.length(); i++) {
for (int j = i + 1; j < iniString.length(); j++) {
if ((iniString.charAt(i) ^ iniString.charAt(j)) == 0) {
return false;
}
}
}
return true;
}
/**
* “(.)”表示一个捕获组,“\\1”表示一个反向引用,也就是说“\\1”与“(.)”这两个位置的值可以相同,
* 其他位置都是".*",表示匹配0~n个任意字符。总的来说,这个正则表达式是匹配出现重复字符的字符串
*
* .:代表任意一个字符
* .*:代表任意一个字符后面有0个或多个字符
* (.):选择字符中任意一个字符进行复制和后面的(.*\\1)结合进行判断是否后面存在一个字符与它相同
* (.)(.*\\1):匹配案例 a*a(即首尾相同的abcsa)
* (.)(.*\\1).*:匹配案例 a*a*
* .*(.)(.*\\1):匹配案例 *a*a
* .*(.)(.*\\1).*:匹配案例 *a*a*
*/
public static boolean checkDifferentReg(String iniString) {
return !iniString.matches(".*(.)(.*\\1).*");
}
3 参考文献各个部分的含义
一、参考文献的类型
二、参考文献的格式及举例
三、注释
四、参考文献
https://zhidao.baidu.com/question/531502391.html
4 ip地址、域名、DNS、URL(即网址)的区别与联系
1.IP地址:每个连接到Internet上的主机都会分配一个IP地址,IP地址是用来唯一标识互联网上计算机的逻辑地址,机器之间的访问就是通过IP地址来进行的。IP地址采用二进制的形式表示的话很长,比较麻烦,为了便于使用,IP地址经常被写成十进制的形式,用“.”分开,叫做“点分十进制表示法”,如:127.0.0.1。
2.域名:IP地址毕竟是数字标识,使用时不好记忆和书写,因此在IP地址的基础上又发展出一种符号化的地址方案,来代替数字型的IP地址。每一个符号化的地址都与特定的IP地址对应。这个与网络上的数字型IP地址相对应的字符型地址,就被称为域名。目前域名已经成为互联网品牌、网上商标保护必备的要素之一,除了识别功能外,还有引导、宣传等作用。如:www.hstc.edn.cn。
3.DNS:在Internet上域名与IP地址之间是一对一(或者多对一)的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。域名的最终指向是IP。
4.URL:统一资源定位符(英语UniformResourceLocator的缩写)俗称为网址,网址格式为:<协议>://<域名或IP>:<端口>/<路径>。<协议>://<域名或IP>是必需的,<端口>/<路径>有时可省略。如:https://www.baidu.com/。
5 ButterKnife Zelezny 抛出 ArrayIndexOutOfBoundsException
因为布局文件的命名中出现两个下划线导致的。比如@id/+id a__b_c
6 Heritrix替换Hflp散列函数的方法
在heritrix.properties 也替换更改的类,每次换行均要加“\”等号后面黑色字体是无效。
org.archive.crawler.frontier.AbstractFrontier.queue-assignment-policy= org.archive.crawler.frontier.ELFHashQueueAssignmentPolicy \
org.archive.crawler.frontier.IPQueueAssignmentPolicy \
org.archive.crawler.frontier.BucketQueueAssignmentPolicy \
org.archive.crawler.frontier.SurtAuthorityQueueAssignmentPolicy \
org.archive.crawler.frontier.TopmostAssignedSurtQueueAssignmentPolicy
http://www.cpcia.org.cn/html/19/news_page1.html
7 Levenshtein Distance + LCS 算法计算两个字符串的相似度
https://www.cnblogs.com/three-zone/archive/2013/06/06/LevenshteinDistance.html
8 Android中visibility属性VISIBLE、INVISIBLE、GONE的区别
VISIBLE:设置控件可见
INVISIBLE:设置控件不可见
GONE:设置控件隐藏
而INVISIBLE和GONE的主要区别是:当控件visibility属性为INVISIBLE时,界面保留了view控件所占有的空间;而控件属性为GONE时,界面则不保留view控件所占有的空间。
9 Android中搜索图标和文字居中的EditText实例
1 自定义控件
http://www.jb51.net/article/115739.htm
2 Android 软键盘事件imeOptions响应
http://blog.csdn.net/liuweiballack/article/details/46708697
10 ListView属性及divider设置分割线
http://www.cnblogs.com/SZ2015/p/4558462.html
11 确定两串乱序同构。确定其中一个字符串的字符重新排列后,能否变成另一个字符串。
char[] c1 = stringA.toCharArray();
char[] c2 = stringB.toCharArray();
//排序
Arrays.sort(c1);
Arrays.sort(c2);
/*
注意使用Arrays.equals(c1, c2)而不是c1.equals(c2):
如果两个数组以相同顺序包含相同的元素,则两个数组是相等的
*/
return Arrays.equals(c1, c2);
12 使用CircleImageView设置圆形图片
http://blog.csdn.net/liuyonglei1314/article/details/55102720
13 java如何将char类型的数字转换成int型的数字
public class CharToIntConverter {
public static void main(String[] args) {
char numChar = '3';
int intNum = numChar - '0';
System.out.println(numChar + ": " + intNum);
}
}
http://blog.csdn.net/yin13037173186/article/details/77767844
14 空格替换
/**
* 将字符串中的空格全部替换为“%20”
* 假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),
* 同时保证字符串由大小写的英文字母组成。
* */
public static String replaceSpace(String iniString, int length) {
char[] charArr = iniString.toCharArray();
// 计算源字符串的长度和空格的数量
int originalLength = charArr.length;
int numberOfBlank = 0;
int numberOfNum = 0;//记录数字数量
for(char item : charArr){
if(item == ' '){
numberOfBlank++;
}
}
// 计算新的字符串长度
int newLength = originalLength + numberOfBlank * 2;
char[] newcharArr = new char[newLength];
//
int indexOfOriginal = originalLength - 1;
int indexOfNew = newLength - 1;
while (indexOfOriginal >= 0) {
int temp = charArr[indexOfOriginal] - '0';
if(temp>=0 && temp<=9){
indexOfOriginal--;
numberOfNum++;
continue;
}
if (charArr[indexOfOriginal] == ' ') {
newcharArr[indexOfNew--] = '0';
newcharArr[indexOfNew--] = '2';
newcharArr[indexOfNew--] = '%';
indexOfOriginal--;
} else {
newcharArr[indexOfNew--] = charArr[indexOfOriginal--];
}
}
return String.valueOf(newcharArr).substring(numberOfNum,String.valueOf(newcharArr).length());
}
15 的和地的用法区别在哪里?
“的”前面的词语一般用来修饰、限制“的”后面的事物,说明“的”后面的事物怎么样。结构形式一般为:形容词(代词)+的+名词;
例:美丽的花、我的衣服
“地”前面的词语一般用来形容“地”后面的动作,说明“地”后面的动作怎么样。结构方式一般为:副词+地+动词;
例:紧张地进行
简单的说,的修饰名词,地修饰动词。
16 第一周,计划。
论文(优先度1)
1 完成初稿
2 将之前研究术语抽取过程中使用到的技术、思想总结,更新至简书。
小桔灯(优先度2)
1 完成我的页面合并
2 修复现有的bug
3 继续学习android项目,并将其中技术运用至小桔灯。
面试准备(优先度4)
1 看书,学习巩固Java基础知识
1 Java核心思想(||),第一、二两章(流与文件、XML)阅读,并将重点内容总结至简书。
2 编码,实战操作
1 刷题:剑指offer1-14题,并将需要总结的地方写在简书上。
3 制作个人简历(优先度3)
1 梳理自己做的项目(涉及的技术、难点以及解决的方法等)
油气行业采集系统
行业信息网前后台
17 减小android button的大小
http://blog.csdn.net/zfireear/article/details/51007094
18 Android添加横线和竖线分割界面
竖线
<View
android:layout_width="1dip"
android:layout_height="match_parent"
android:background="#66CCFF"
android:layout_gravity="center_horizontal"
/>
横线
<View android:layout_height="1px"
android:layout_width="match_parent"
android:background="#66CCFF"
/>
http://blog.csdn.net/cn2007/article/details/21445331
http://blog.csdn.net/bfboys/article/details/52565157
19 Android 在 LinearLayout 添加分割线 divider
推荐方法:
LinearLayout有两个属性
1、android:divider="@drawable"
drawable可以是图片文件,也可以是xml绘制的shape。
使用shape的时候一定要添加<size> ,一定要添加颜色,即使是透明,例如:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/account_line" />
<size android:height="1px" />
</shape>
2、android:showDividers = "middle|end|beginning|none"
middle 在每一项中间添加分割线
end 在整体的最后一项添加分割线
beginning 在整体的最上方添加分割线
none 无
添加上这两个属性就可以实现图中效果。
但是,这种属性只有Android3.0以上才支持。
兼容3.0以下版本,需要引用android-support-v7-appcompat.jar
使用android.support.v7.widget.LinearLayoutCompat,用法和LinearLayout一样。但是再设置属性的时候需要使用设置xml命名空间
比如xmlns:app="http://schemas.android.com/apk/res-auto" app:divider=""