java处理
public static void main(String[] args) {
String ip = "127.0.0.1;127.0.0.2";
String[] ipArr = ip.split(";");
System.out.println("String字符串转String[]:"+Arrays.toString(ipArr));
JSONObject jsonObject =new JSONObject();
jsonObject.put("ip",ipArr);
System.out.println("json对象:" + jsonObject);
JSONArray jsonArray = jsonObject.getJSONArray("ip");
System.out.println("json对象获取数组格式value:" + jsonArray);
String getStringIp = getStringIp(jsonArray);
System.out.println("json数组转String:" + getStringIp);
}
public static String getStringIp (JSONArray jsonArray){
String ip= "";
for (int i=0;i<jsonArray.size();i++){
if (i==jsonArray.size()-1){
ip +=jsonArray.get(i);
}else{
ip +=jsonArray.get(i)+";";
}
}
return ip;
}
}
element自定义表单校验,ip正则校验,多个ip间用;间隔,允许以;结尾
<el-form
ref="addForm"
:model="addForm"
:rules="rules"
>
<el-form-item prop="text">
<el-input
v-model="addForm.text"
type="textarea"
class="inputItem"
:autosize="{ minRows: 10, maxRows: 10}"
placeholder="请填写ip或ip段,多个请以;分隔,个数不超过10个"
/>
</el-form-item>
data() {
var validateIPAddress = (rule, value, callback) => {
const regExp = /^((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}$/
const arr = value.split(';')
const arrLast = arr[arr.length - 1]
let isCorrect = false
if (arrLast === '') {
arr.pop()
}
for (let i = 0; i < arr.length; i++) {
if (regExp.test(arr[i]) === false) {
isCorrect = true
}
}
if (arr.length > 10) {
return callback(new Error('个数不超过10个'))
}
if (value === '') {
return callback(new Error('请输入iP地址'))
} else if (isCorrect) {
callback(new Error('请输入正确的ip地址'))
} else {
callback()
}
}
return {
addForm: {
radio: 1,
text: ''
},
rules: {
text: [
{ validator: validateIPAddress, trigger: 'change' }
]
}
}
},
自动拆箱和自动装箱?
- 基本数据类型与它对应的包装类, 不需要强转,可自动相互转换
int int1 =1;
Integer integer1 = int1;
Integer integer2 = 2;
int int2 = integer2;
向上转型和向下转型?
- 向上转型不需要强转,向下需要强转
int int1 =1;
double double1 = int1;
double double2 =123.456;
int int2 = (int) double2;
String、StringBuffer、StringBuilder?
- String 不可变字符串,final修饰,每次修改都会产生一个新的对象
- StringBuffer 可变字符串,多线程,效率低,安全
- StringBuilder 可变字符串,单线程,效率高,不安全
String st = null;
StringBuffer sbf = new StringBuffer();
StringBuilder sbd = new StringBuilder();
ArrayList 与 LinkedList?
- ArrayList 数组结构、查询快、增删慢
- LinkedList 双线链表结构、查询慢、增删快
List arrayList = new ArrayList();
List linkedList =new LinkedList();
HashSet?
- 用HashMap实现的,k是存的HashSet,v是静态常量Object对象
Set hashSet = new HashSet();
HashMap?
- 哈希表结构
- 哈希表是一个数组,数组中的每一个元素都是一个链表,在JDK8及以后链表的长度超过8,那么链表就会自动变成红黑树
- jdk1.7 数组+ 链表
- jdk1.8 数组+ 链表+ 红黑树
- 初始容量:16
- 负载因子:0.75
Map map = new HashMap();