您现在的位置是:网站首页>文章详情文章详情
安卓逆向所需的java基础:数据包装类、Math、字符串类、字符串操作类、数组
inlike2019-09-09【 原创文章 】 浏览(1309) 评论(0) 喜欢(28)
简介在上一篇中讲了《安卓逆向所需的java基础:基本数据类型、变量类型、修饰符、运算符、循环语句、条件语句》,这篇继续说基本数据类型的包装了、数学方法集合Math、数组对象。
在上一篇中讲了《安卓逆向所需的java基础:基本数据类型、变量类型、修饰符、运算符、循环语句、条件语句》,这篇继续说基本数据类型的包装了、数学方法集合Math、数组对象。
与Python不同,java内置基本数据类型提供了包装类用于创建对象,字符串不再是基本数据类型,而是内置对象并提供字符串操作对象来处理,数组在Python中叫列表,在java中是单独的对象。
包装类
public class Test{
public static void main(String args[]){
Integer x = 5;
x = x + 10;
System.out.println(x);
}
}
Math
public class Test {
public static void main (String []args)
{
System.out.println("90 度的正弦值:" + Math.sin(Math.PI/2));
System.out.println("0度的余弦值:" + Math.cos(0));
System.out.println("60度的正切值:" + Math.tan(Math.PI/3));
System.out.println("1的反正切值: " + Math.atan(1));
System.out.println("π/2的角度值:" + Math.toDegrees(Math.PI/2));
System.out.println(Math.PI);
}
}
Java Character 类
char ch = 'a';
// Unicode 字符表示形式
char uniChar = '\u039A';
// 字符数组
char[] charArray ={ 'a', 'b', 'c', 'd', 'e' };
Character ch = new Character('a');
Character 方法
下面是Character类的方法:
Java String 类
String greeting = "字符串";
字符串长度
public class StringDemo {
public static void main(String args[]) {
String site = "www.badiu.com.com";
int len = site.length();
System.out.println( "www.baidu.com" + len );
}
}
格式化字符串
String fs;
fs = String.format("浮点型变量的值为 " +
"%f, 整型变量的值为 " +
" %d, 字符串变量的值为 " +
" %s", floatVar, intVar, stringVar);
System.out.printf("浮点型变量的值为 " +
"%f, 整型变量的值为 " +
" %d, 字符串变量的值为 " +
"is %s", floatVar, intVar, stringVar);
String 方法
StringBuffer 和 StringBuilder 类
public class Test{
public static void main(String args[]){
StringBuffer sBuffer = new StringBuffer("www.baidu.com");
sBuffer.append("www");
sBuffer.append(".baidu");
sBuffer.append(".com");
System.out.println(sBuffer);
}
}
StringBuffer 方法
数组
声明:
变量类型[] 变量名 或者 变量类型 变量名[]
创建:
变量名 = new 数组类型[大小] 如:dataType[] arrayRefVar = new dataType[arraySize];
或者
dataType[] arrayRefVar = {value0, value1, ..., valuek};
创建、初始化、操作案例:
public class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// 打印所有数组元素
for (int i = 0; i < myList.length; i++) {
System.out.println(myList[i] + " ");
}
// 计算所有元素的总和
double total = 0;
for (int i = 0; i < myList.length; i++) {
total += myList[i];
}
System.out.println("Total is " + total);
// 查找最大元素
double max = myList[0];
for (int i = 1; i < myList.length; i++) {
if (myList[i] > max) max = myList[i];
}
System.out.println("Max is " + max);
}
}
For-Each 循环
for(type element: array)
{
System.out.println(element);
}
public class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// 打印所有数组元素
for (double element: myList) {
System.out.println(element);
}
}
}
数组作为函数参数
public static void printArray(int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
调用:printArray(new int[]{3, 1, 2, 6, 4, 2});
数组作为函数的返回值
public static int[] reverse(int[] list) {
int[] result = new int[list.length];
for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
result[j] = list[i];
}
return result;
}
多维数组
String str[][] = new String[3][4];
多维数组动态初始化
type[][] typeName = new type[typeLength1][typeLength2];
int a[][] = new int[2][3]; 二维数组 a 可以看成一个两行三列的数组。
Arrays 类
具有以下功能:
给数组赋值:通过 fill 方法。
对数组排序:通过 sort 方法,按升序。
比较数组:通过 equals 方法比较数组中元素值是否相等。
查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。
具体说明请查看下表:
import java.util.Arrays;
public class TestArrays {
public static void main(String[] args) {
int[] a1 = new int[] {4,3,2,1};
int[] a2 = new int[] {6,5,7,8};
//排序 升序
Arrays.sort(a1);
System.out.println("对a1数组进行排序结果为:" + Arrays.toString(a1));
//Arrays.binarySearch(a1, 4) 查找数组中值得下标 前提是必须排序不然不确定 如果有重复的返回第一个 如果没有这个值得话返回负数
System.out.println("查找a1数组当中4的值下标为:"+Arrays.binarySearch(a1, 4));
//Arrays.binarySearch(a1, 1, 4, 4) 查找数组中从1到4下标中有没有值为3的 如果有返回下标 如果没有返回负数 前提必须排序
System.out.println("查找a1数组从下标1开始到下标3结束,查看是否有为3的值" + Arrays.binarySearch(a1, 1, 3, 3));
//Arrays.copyOf(a1, 5) 复制数组 a1为被复制的数组 5为新数组的长度
int[] a3 = Arrays.copyOf(a1, 5);
System.out.println("a3数组的值为:" + Arrays.toString(a3));
//和上面一样 a1位被复制的数组 2为a1数组开始下标 3a1为数组结束下标
int[] a4 = Arrays.copyOfRange(a1, 2, 3);
System.out.println("a4数组值为:" + Arrays.toString(a4));
//查看两个数组的length和数组元素是否相同 如果都相同返回true 否则返回false
System.out.println("查看a1数组和a2数组是否相同 :" + Arrays.equals(a1, a2));
//把a1数组中的值全部换为 1
Arrays.fill(a1, 1);
System.out.println("输出a1数组的值为:" + Arrays.toString(a1));
//把a2数组中下标1到下标3的值换为1
Arrays.fill(a2, 1, 3, 1);
System.out.println("输出a2数组的值为:"+ Arrays.toString(a2));
}
}
"""
对a1数组进行排序结果为:[1, 2, 3, 4]
查找a1数组当中4的值下标为:3
查找a1数组从下标1开始到下标3结束,查看是否有为3的值2
a3数组的值为:[1, 2, 3, 4, 0]
a4数组值为:[3]
查看a1数组和a2数组是否相同 :false
输出a1数组的值为:[1, 1, 1, 1]
输出a2数组的值为:[6, 1, 1, 8]
"""
相关文章
本栏推荐
标签云
猜你喜欢
站点信息
- 建站时间:2019-5-24
- 网站程序:like in love
- 主题模板:《今夕何夕》
- 文章统计:104条
- 文章评论:***条
- 微信公众号:扫描二维码,关注我们