java的byte数组问题
"""
因为python字节的范围是0-255
java的字节范围是-127-128
"""
# python字节数组转java字节数组
byteArray_p = [230, 172, 167, 233, 152, 179, 229, 155, 189, 229, 139, 135]
data = []
for i in byteArray_p:
if i>127:
data.append(i-127-129)
else:
data.append(i)
print(data)
# java字节数组转python
byteArray_j = [-26, -84, -89, -23, -104, -77, -27, -101, -67, -27, -117, -121]
data = bytearray()
for b in byteArray_p:
if b<0:
b+=256
data.append(b)
print(data.decode("utf-8"))
java的数组,char,string的转化
在Java中,单引号表示一个字符,用char表示,双引号表示字符串,用String表示
import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.security.SecureRandom;
import java.util.Arrays;
import java.util.UUID;
public class getUUID {
public static void main(String[] args) throws UnsupportedEncodingException {
// String cdid = UUID.randomUUID().toString();
// System.out.println(cdid);
// String string = new BigInteger(80, new SecureRandom()).toString(16);
// System.out.println(string);
// 字符串转gbk类型的byte
byte[] dataList = "欧阳国勇".getBytes("GBK");
// 打印输出byte数组
System.out.println(Arrays.toString(dataList));
// gbk类型的byte转字符串
String dataString = new String(dataList,"GBK");
System.out.println(dataString);
String s1 = "欧阳国勇";
String s2 = new String("欧阳国勇");
System.out.println(s1);
System.out.println(s2);
// byte数组转string
String s3 = new String(new byte[]{-26, -84, -89, -23, -104, -77, -27, -101, -67, -27, -117, -121});
// gbk类型的字节数组转string
String s4 = new String(new byte[]{-59, -73, -47, -12, -71, -6, -45, -62},"GBK");
System.out.println(s3);
System.out.println(s4);
// 生成char类型的数组,然后转string
String s5 = new String(new char[]{'欧','阳','国','勇'});
System.out.println(s5);
}
}
StringBuilder(字符串的拼接)
StringBuilder sb = new StringBuilder();
sb.append("name");
sb.append("=");
sb.append("andy");
sb.append(",age");
sb.append("=");
sb.append("19");
String sbString = sb.toString();
System.out.println(sbString);
java的数组
int[] numArray = new int[3];
numArray[0] = 1;
numArray[1] = 2;
numArray[2] = 3;
System.out.println(Arrays.toString(numArray));
int[] num1 = new int[]{1,2,3};
System.out.println(Arrays.toString(num1));
String[] arr = {"张三","李四","网乌鸦"};
System.out.println(Arrays.toString(arr));
java中的所有类型都继承object,所有类型都是object的子类
// 接口的作用
// 1 约束,实现(继承)他的类
// 泛指他子类的对象
// ArrayList 连续的内存地址存储(内部自动扩容)
// linkedList 底层基于链表实现
定义一个ArrayList
ArrayList<Integer> l1 = new ArrayList<>();
l1.add(1);
l1.add(2);
l1.add(3);
System.out.println(l1);
System.out.println();
要是<>中是某个类型,那么该list中只能放规定的类型,如果是Object,可以放任意类型
ArrayList<Object> v1 = new ArrayList<>();
v1.add(1);
v1.add("张三");
System.out.println(v1);
// 当不知道数组中的元素是什么类型的时候,轻质类型转换
String value = (String)v1.get(1);
System.out.println(value);
迭代器
ArrayList<String> v2 = new ArrayList<>();
v2.add("张三");
v2.add("李四");
v2.add("王五");
// for循环一个list
for (String item : v2) {
System.out.println(item);
}
// 迭代取值list
Iterator<String> it = v2.iterator();
while (it.hasNext()){
String item = it.next();
System.out.println(item);
}
Set
- // 实现Set的有两个类,
- // 一个HashSet(有序集合),
- // 一个TreeSet(无序集合),底层会根据键做一个排序,我们在做逆向重写的时候,要先排序