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——方法的主要内容,如果未能解决你的问题,请参考以下文章

22.java方法的定义

java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段

Java语言基础之方法的设计

Java初识方法

Android Java:在 onCreateView() 中返回空视图的片段

jsp页面被tomcat引擎运行的时候组装成java片段,但是这些java片段怎么没有main方法作为程序的入口啊?