Java——方法
Posted Yawn,
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java——方法相关的知识,希望对你有一定的参考价值。
1. 数组扩充长度
1:
//digits 为原数组
digits = new int[digits.length + 1];
digits[0] = 1;
return digits;
2:
int[] digits1 = Arrays.copyOf(digits, digits.length+1);
digits1[0] = 1;
return digits1
3:
替换空格
class Solution {
public:
string replaceSpace(string s) { //字符数组
string array; //存储结果
for(auto &c : s){ //遍历原字符串
if(c == ' '){
array.push_back('%');
array.push_back('2');
array.push_back('0');
}
else{
array.push_back(c);
}
}
return array;
}
};
String s = new String(char数组, 起始下标, 长度);
2. 复制数组
1:
直接赋值:数组地址会变,就不是原地使数组变化啦
nums = newArr
//直接赋值,数组地址会变,就不是原地使数组变化啦
2:
使用System.arraycopy
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
object src : 原数组
int srcPos : 起始位置
Object dest : 目标数组(复制原数组到目标数组)
int destPos : 目标数组起始位置
int length : 要copy的数组的长度
System.arraycopy(newArr, 0, nums, 0, n);
将数组newArr的值复制到nums
从newArr的0开始复制到nums的0开始,总共复制n位
3. Array方法
Arrays.asList:
- 该方法是将数组转化成List集合的方法。
- List list = Arrays.asList(“a”,“b”,“c”);
- 用此方法得到的List的长度是不可改变的,
Arrays.sort(数组名):
- 对数组进行升序排序
Arrays.toString()方法::
- 将一个数组array转换成一个字符串
int [] arr3={12,21,13,24};
System.out.print(Arrays.toString(arr3));
Arrays.copyOf()方法:
- 把数组array复制成一个长度为length的新数组,返回类型与复制的数组一致
int [] arr3={12,21,13,24};
int arr[]=Arrays.copyOf(arr3, 6);
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
Arrays.equals()方法:
- 比较两个数组是否相等
int [] arr1={12,21,13};
int [] arr2={12,21,13};
int [] arr3={12,21,13,24};
boolean a=Arrays.equals(arr1,arr2);
boolean b=Arrays.equals(arr1,arr3);
System.out.println(a+" , "+b);
set.toArray()【0】方法:
将set集合转为数组
class Solution {
public int singleNumber(int[] nums) {
Set<Integer> set = new HashSet<>();
for (int num : nums) {
if (!set.add(num)) {
//如果添加失败,说明这个值
//在集合Set中存在,我们要
//把他给移除掉
set.remove(num);
}
}
//最终集合Set中只有一个元素,我们直接返回
return (int) set.toArray()[0];
}
}
4. String常用方法
## 获取:
1. char c = charAt(int index);获取某位置上的字符
2. int a = indexOf(int ch);获取字符ch在字符串中第一次出现的位置(将参数换成字符串 获取字符子串str在字符串中第一次出现的位置)
3. int a = lastIndexOf(int ch);反向查找,作用同上
4. int a = indexOf(int ch,int fromIndex);从fromIndex位置开始,获取字符ch的位置(前面也可加last)
5. int a = indexOf(String str,int fromIndex);从fromIndex位置开始获取str在字符串中出现的位置(前面也可加last)
**## 判断:**
6. boolean b = "123".contains(String str);判断字符串中是否包含某个子串(特殊:indexOf(String str)返回-1也可以)
7. boolean b = "123".isEmpty();判断字符串长度是否为0
8. boolean b = "123".startsWith(String str);判断是否以str字符子串开头
9. boolean b = "123".endsWith(String str);判断是否以str字符子串结尾
10. boolean b = "123".equals(String str);判断字符串内容是否相同
11. boolean b = "123".equalsIgnoreCase(String str);忽略大小写判断字符串内容是否相等
**## 转换**
12. String s = new String(char[]);将字符数组转换成字符串(将参数改为byte[]就是把字节数组转换为字符串)
13. String s = new String(char[],offset,count);从offset角标开始往后数count个字符将其转换(同上,也可将参数改为byte[])
14. char[] c = "123".toCharArray();将字符串转换为字符数组
15. byte[] b = "123".getBytes();将字符串转换为字节数组
16. String s = String.valueOf(int i);将基本数据类型转换成字符串(可将参数换成double,float等
**## 替换**
17. String s = "123".replace('1','a');将原字符串中的(全部)1字符替换成a字符,要是替换的不存在,返回原串 (参数改为字符串则替换字符串)
18. String s = "123".replaceFirst('2','a');只替换第一个出现的字符2 (参数改为字符串则替换字符串)切割
**## 切割**
19. String[] s = "123,456,789".split(',');通过,把字符串分割了 s[0]="123" s[1]="456" .....获取子串
20. String s = "123456".substring(2);从2位置开始获取到结尾处,s="3456"
21. String s = "123456".substring(2,4);从2位置截取到4位置(包含头,不包含尾),s="34" 获取整个字符串substring(0,"123".length())转换 比较 去除
**## 空格**
22. String s = "AbcD".toLowerCase();将字符串转换为小写
23. String s = "AbcD".toUpperCase();将字符串转换为大写
24. String s = " 123 ".trim();去除字符串两端的空格
25. int i = "123".compareTo("456");对两个字符串进行自然顺序的比较,相等返回0,大于返回正数,小于返回负数(ascall码相差值)
## 格式有点小问题
5. For循环,对角线交换
下半对角线进行互换
for(int i = 0; i < n; i++){ //下半对角线交换,注意 j = i + 1;
for(int j = 0; j < i; j++){
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
上半对角线进行互换
for(int i = 0; i < n; i++){ //对角线交换,注意 j = i + 1,这个很重要
for(int j = i + 1; j < n; j++){
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
6. 整数溢出判断
class Solution {
public int reverse(int x) {
int res = 0;
if(x == 0)
return 0;
while(x != 0){
int t = x % 10;
int newews = res * 10 + t;
if((newews - t) / 10 != res) //判断整数溢出
return 0;
res = newews;
x = x / 10;
}
return res;
}
}
7. char 转 int
//如果char为数字
char a = '5';
int b = a - '0';
//如果char为字母
char a = 'a';
int b = a - 'a';
以上是关于Java——方法的主要内容,如果未能解决你的问题,请参考以下文章
java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段