Java面试常用函数

  1. charAt() 方法用于返回字符串指定索引处的字符。索引范围为从 0 到 length() - 1。

map.getOrDefault(num, 0) :如果map存在num这个key,则返回num对应的value,否则返回0.

Arrays.sort(nums); 数组排序

Arrays.asList("a","b","c");;该方法是将数组转化成List集合的方法。

s.toCharArray();将字符串中的字符转换为字符数组.

new String(ch) 将数组转化为字符串。

str.trim().split(" ");//将字符串先去掉头尾的空格,再按照" "分割。

Arrays.toString(strIn) 数组转字符串

2. 求字符串长度 s.length();

求数组长度:s.length;

集合长度:size()

3.集合

1.总体结构:

接口:Collection/List/Set/Map

实现类:Arraylist/LinkedList/HashSet/TreeSet/HashMap/TreeMap

2.Collection 集合

3.List集合

List集合的概述

  • 有序集合,这里的有序指的是存取顺序

  • 用户可以精确控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素

  • 与Set集合不同,列表通常允许重复的元素

List集合的特点

  • 存取有序

  • 可以重复

  • 有索引

List集合的实现类

ArrayList集合

底层是数组结构实现,查询快、增删慢
*

LinkedList集合

底层是链表结构实现,查询慢、增删快
*

LinkedList集合的特有功能

3.创建hashset(集合):

Set<Integer> set1 = new HashSet<>()
set1.add(i)//添加元素
if (set1.contains(i)) //判断是否包含i
set.size() #hashset的大小

4.创建比较

//List
List<String> list = new ArrayList<>();
//二维数组
List<List<Integer>> result = new ArrayList<>();

//二维数组添加元素
result.add(Arrays.asList(nums[i], nums[left], nums[right]))


//LinkedList
LinkedList<String> list = new LinkedList<>();

//Set
Set<String> set = new TreeSet<>();
//TreeSet
TreeSet<Integer> ts = new TreeSet<Integer>();
//HashSet
HashSet<String> set = new HashSet<String>();

//Map
Map<String,String> map = new HashMap<String,String>();
//HashMap
HashMap<Student, String> hm = new HashMap<Student, String>()
//TreeMap
TreeMap<Student,String> tm = new TreeMap<>();

5.遍历比较

List
普通for循环
//size方法跟get方法还有循环结合的方式,利用索引获取到集合中的每一个元素
for (int i = 0; i < list.size(); i++) { 
         String s = list.get(i);
         System.out.println(s);
        }

Set
//Set集合是没有索引的,所以不能使用通过索引获取元素的方法
不能用for (int i = 0; i < set.size(); i++) {
//            
//        }

        for (String s : set) {
            System.out.println(s);
        }


TreeSet
        for(Integer i : ts) {
            System.out.println(i);
        }

HashSet
        for(String s : set) {
            System.out.println(s);
        }


Map
方法一:
        //获取所有键的集合。用keySet()方法实现
        Set<String> keySet = map.keySet();
        //遍历键的集合,获取到每一个键。用增强for实现
        for (String key : keySet) {
            //根据键去找值。用get(Object key)方法实现
            String value = map.get(key);
            System.out.println(key + "," + value);
        }

方法二:
        //获取所有键值对对象的集合
        Set<Map.Entry<String, String>> entrySet = map.entrySet();
        //遍历键值对对象的集合,得到每一个键值对对象
        for (Map.Entry<String, String> me : entrySet) {
            //根据键值对对象获取键和值
            String key = me.getKey();
            String value = me.getValue();
            System.out.println(key + "," + value);
        }

HashMap
        //遍历集合
        Set<Student> keySet = hm.keySet();
        for (Student key : keySet) {
            String value = hm.get(key);
            System.out.println(key.getName() + "," + key.getAge() + "," + value);
        }

6.字符串操作

  • s.erase(pos,n);

    删除从pos开始的n个字符,比如erase(0,1)就是删除第一个字符

  • 字符串长度 s.length();

|----|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 | char charAt(int index) 返回指定索引处的 char 值。 |
| 2 | int compareTo(Object o) 把这个字符串和另一个对象比较。 |
| 3 | int compareTo(String anotherString) 按字典顺序比较两个字符串。 |
| 4 | int compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不考虑大小写。 |
| 5 | String concat(String str) 将指定字符串连接到此字符串的结尾。 |
| 6 | boolean contentEquals(StringBuffer sb) 当且仅当字符串与指定的StringBuffer有相同顺序的字符时候返回真。 |
| 7 | static String copyValueOf(char[] data) 返回指定数组中表示该字符序列的 String。 |
| 8 | static String copyValueOf(char[] data, int offset, int count) 返回指定数组中表示该字符序列的 String。 |
| 9 | boolean endsWith(String suffix) 测试此字符串是否以指定的后缀结束。 |
| 10 | boolean equals(Object anObject) 将此字符串与指定的对象比较。 |
| 11 | boolean equalsIgnoreCase(String anotherString) 将此 String 与另一个 String 比较,不考虑大小写。 |
| 12 | byte[] getBytes() 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 |
| 13 | byte[] getBytes(String charsetName) 使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 |
| 14 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 将字符从此字符串复制到目标字符数组。 |
| 15 | int hashCode() 返回此字符串的哈希码。 |
| 16 | int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。 |
| 17 | int indexOf(int ch, int fromIndex) 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。 |
| 18 | int indexOf(String str) 返回指定子字符串在此字符串中第一次出现处的索引。 |
| 19 | int indexOf(String str, int fromIndex) 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。 |
| 20 | String intern() 返回字符串对象的规范化表示形式。 |
| 21 | int lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引。 |
| 22 | int lastIndexOf(int ch, int fromIndex) 返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。 |
| 23 | int lastIndexOf(String str) 返回指定子字符串在此字符串中最右边出现处的索引。 |
| 24 | int lastIndexOf(String str, int fromIndex) 返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。 |
| 25 | int length() 返回此字符串的长度。 |
| 26 | boolean matches(String regex) 告知此字符串是否匹配给定的正则表达式。 |
| 27 | boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) 测试两个字符串区域是否相等。 |
| 28 | boolean regionMatches(int toffset, String other, int ooffset, int len) 测试两个字符串区域是否相等。 |
| 29 | String replace(char oldChar, char newChar) 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。 |
| 30 | String replaceAll(String regex, String replacement) 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。 |
| 31 | String replaceFirst(String regex, String replacement) 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。 |
| 32 | String[] split(String regex) 根据给定正则表达式的匹配拆分此字符串。 |
| 33 | String[] split(String regex, int limit) 根据匹配给定的正则表达式来拆分此字符串。 |
| 34 | boolean startsWith(String prefix) 测试此字符串是否以指定的前缀开始。 |
| 35 | boolean startsWith(String prefix, int toffset) 测试此字符串从指定索引开始的子字符串是否以指定前缀开始。 |
| 36 | CharSequence subSequence(int beginIndex, int endIndex) 返回一个新的字符序列,它是此序列的一个子序列。 |
| 37 | String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。 |
| 38 | String substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。 |
| 39 | char[] toCharArray() 将此字符串转换为一个新的字符数组。 |
| 40 | String toLowerCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为小写。 |
| 41 | String toLowerCase(Locale locale) 使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。 |
| 42 | String toString() 返回此对象本身(它已经是一个字符串!)。 |
| 43 | String toUpperCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为大写。 |
| 44 | String toUpperCase(Locale locale) 使用给定 Locale 的规则将此 String 中的所有字符都转换为大写。 |
| 45 | String trim() 返回字符串的副本,忽略前导空白和尾部空白。 |
| 46 | static String valueOf(primitive data type x) 返回给定data type类型x参数的字符串表示形式。 |
| 47 | contains(CharSequence chars) 判断是否包含指定的字符系列。 |
| 48 | isEmpty() 判断字符串是否为空。 |

6.类型转换

万能法则

import java.util.Scanner;

public class myScanner {
    Scanner sc = new Scanner(System.in);
    public static void main(String[] args) {
        int a=1;
        String b;
        char c;

        b=String.valueOf(a);//int转字符串
        a=Integer.valueOf(b);//字符串转int
        c=b.charAt(0);//字符串转字符
        b=String.valueOf(c);//字符转字符串
        
//字符和int的转换 只需要用过字符串即可。
        
        
    }
}

6.1数字、字符串相互转换

// 数字转字符串 method1
		int number = 5;
		String str = String.valueOf(number);
		System.out.println(str);

// 数字转字符串 method2
		int number = 5;
		Integer itr = number;  //int装箱为对象,再调用对象的toString方法
		String str = itr.toString(); //或者直接 String str = Integer.toString(number);
		System.out.println(str);

// 数字转字符串 method3
		int number = 5;
		String str = number + "";
		System.out.println(str);

// 字符串转数字
		String str = "123";
		int number = Integer.parseInt(str);		
		System.out.println(number);

6.2 字符、字符串相互转换

//字符转字符串 method 1
		char ch = '5';
		String str = String.valueOf(ch);
		System.out.println(str);

//字符转字符串 method 2
		char ch = '5';
		String str = ch + "";
		System.out.println(str);	

// 字符串转字符
		// 其实这里也算不上转换了,只是获取对应位置上字符
		String str = "123";
		char ch = str.charAt(0); //这里获取到的字符为1
		System.out.println(ch);

6.3 数字、字符相互转换

// 数字转字符
		// 不能直接转换,如下图。因此需借助数字转字符串。
		// 首先将数字转为字符串,再获取字符
		int number = 5; //注意这里数字只能是个位数并且不能为负
		String temp = Integer.toString(number);
		char ch = temp.charAt(0);
		System.out.println("数字转字符:"+ch);

// 字符转数字
		// 先把字符转为字符串,再转换为数字
		char ch = '5';
		String temp = String.valueOf(ch);
		int a = Integer.parseInt(temp);
		System.out.println(a);
		//或者
		int a = ch - '0';

6.4 字符数组转字符串

String newStr = new String(charArray, 0, charArray.length);
相关推荐
周伯通*几秒前
策略模式以及优化
java·前端·策略模式
两点王爷9 分钟前
Java读取csv文件内容,保存到sqlite数据库中
java·数据库·sqlite·csv
lvbu_2024war0119 分钟前
MATLAB语言的网络编程
开发语言·后端·golang
问道飞鱼20 分钟前
【Springboot知识】Springboot进阶-实现CAS完整流程
java·spring boot·后端·cas
抓哇小菜鸡28 分钟前
WebSocket
java·websocket
single59432 分钟前
【c++笔试强训】(第四十五篇)
java·开发语言·数据结构·c++·算法
游客52034 分钟前
自动化办公-合并多个excel
开发语言·python·自动化·excel
Q_192849990639 分钟前
基于Spring Boot的电影网站系统
java·spring boot·后端
Cshaosun43 分钟前
js版本之ES6特性简述【Proxy、Reflect、Iterator、Generator】(五)
开发语言·javascript·es6
凡人的AI工具箱1 小时前
每天40分玩转Django:Django部署概述
开发语言·数据库·后端·python·django