首页 > 编程语言 >Java刷题语法整理

Java刷题语法整理

时间:2022-10-06 15:13:16浏览次数:52  
标签:Java String int System name 语法 new Integer 刷题

输入输出问题汇总

BufferedReader/Scanner输入

//BufferedReader类位于java.io包中,要引入java.io
import java.io.BufferedReader;
import java.io.InputStreamReader;

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();// 单行读取

String[] s = br.readLine().split(" ");//按“ ”划分
int n = Integer.parseInt(s[0]);// 第一个值为由string转为int n
int x = Integer.parseInt(s[1]);
int y = Integer.parseInt(s[2]);
  • BufferedReader.readLine()方法会返回用户在按下Enter键之前的所有字符输入,不包括最后按下的Enter返回字符.
  • 使用BufferedReader对象的readLine()方法必须处理java.io.IOException异常(Exception)。
  • BufferReader读取的数据都以字符串的形式存储,如果需要其他形式的数据,需要进行强制转换。

输出

//待补充 
sout
System.out.println(n);

类型转换

String转换为char、int、Integer

  • String -> char(i)
    • 使用String.charAt(index)(返回值为char)
    • 可以得到String中某一指定位置的char。
  • String -> char[ ]
    • 使用String.toCharArray()(返回值为char[ ])
    • 可以得到将包含整个String的char数组。这样我们就能够使用从0开始的位置索引来访问string中的任意位置的元素。
  • String -> int
    • 使用Integer.parseInt(str) 进行转换,返回str所代表的的int值大小。
  • String -> Integer
    • 使用Integer.valueOf(str),返回Integer对象。

char转换为String、int

  • char -> int 使用 (int)(char - '0')
  • char -> String
1. String s = String.valueOf('c'); //效率最高的方法

2. String s = String.valueOf(new char[]'c'}); //将一个char数组转换成String

3. String s = "" + 'c';
/*** 虽然这个方法很简单,但这是效率最低的方法
Java中的String Object的值实际上是不可变的,是一个final的变量。
所以我们每次对String做出任何改变,都是初始化了一个全新的String Object并将原来的变量指向了这个String。
而Java对使用+运算符处理String相加进行了方法重载。
字符串直接相加连接实际上调用了如下方法:
	new StringBuilder().append("").append('c').toString();
***/

Int转换为String、Integer、char

//int型 转 String型
        String str1=Integer.toString(in);  //使用Integer.toString()
        String str2=String.valueOf(in);	//使用String.valueOf(int i);返回String
        String str3 = "" + in; //少用的方式
//int型 转 char型
        char cha=(char)(in+'0');
//int型 转 Integer型
		    Integer integer=new Integer(in);

String数组转为int数组

String[] strings = {"1", "2", "3"};
//1. 使用stream流 
int[] array = Arrays.asList(strings).stream().mapToInt(Integer::parseInt).toArray();
	
//2. 或
int[] array = Arrays.stream(strings).mapToInt(Integer::parseInt).toArray();

// 3.对String数组中的每一个str进行操作
int[] intarray = new int[strings.length];
int i=0;
for(String str:strings){
    intarray[i++]=Integer.parseInt(str);
}

数据结构

Stack<Integer> stack = new Stack<>();
Deque<Integer> stack = new LinkedList<Integer>();
//压栈
stack.push(object);
//出栈
stack.pop();
//查看栈顶元素
stack.peek();
//判断是否为空
stack.empty();

队列

//queue 单向队列
Queue<Integer> queue = new LinkedList<Integer>();
// 入队
queue.offer(object);
// 出队
queue.poll();
// 查看队首元素
queue.peek();


//deque 双端队列
LinkedList<Integer> deque = new LinkedList<Integer>();
// 从头或者尾入队
deque.offerFirst(object);
deque.offerLast(object);
// 从头或者尾出队
deque.pollFirst();
deque.pollLast();
//查看两段元素
deque.peekFirst();
deque.peekLast();

容器

Arrays

// 初始化
int[] a = new int[10];

// 长度
arrays.length
// 转换为字符串
arrays.toString()


// 排序
Arrays.sort(a);  // 1 默认排序,升序
Arrays.sort(a, firstIdx, lastIdx);  // 2 指定位置进行排序,默认升序,排序区间为左闭右开 [firstIdx, lastIdx)
Arrays.sort(b, new Comparator<Integer>() {  
  // 3 自定义的形式排序
  public int compare(Integer o1, Integer o2) {
    return o2 - o1;
  }
});
Arrays.sort(b, firstIdx, lastIdx, new Comparator<Integer>() {  
  // 4 指定位置进行自定义排序
  public int compare(Integer o1, Integer o2) {
    return o2 - o1;
  }
});
// 由于 Java 8 后有 Lambda 表达式,第三个重载及第四个重载亦可写为 
Arrays.sort(b, (x, y) -> {  // 5 同3
  return y - x;
});
Arrays.sort(b, (x, y) -> {  // 6 同4
  return y - x;
});

// Arrays.binarySearch() 是对数组连续区间进行二分搜索的方法,前提是数组必须有序;
Arrays.binarySearch(a, key); 
Arrays.binarySearch(a, firstIdx, lastIdx, key);  

// Arrays.fill() 将数组中连续位置的元素赋值为统一元素
Arrays.fill(a,2,5,100); 
//其接受的参数为数组、fromIndex、toIndex 和需要填充的数。
                                                                     

Set

Set 是保持容器中的元素不重复的一种数据结构。

// 随机位置插入的 Set
Set<Integer> s1 = new HashSet<>();
// 保持插入顺序的 Set
Set<Integer> s2 = new LinkedHashSet<>();
// 保持容器中元素有序的 Set,默认为升序
Set<Integer> s3 = new TreeSet<>();
Set<Integer> s4 = new TreeSet<>((x, y) -> {return y - x;});  // 降序 
// 遍历
for (int key : s1) {
  //
}

常用方法:

函数名 功能
size() 返回 this 的长度
add(Integer val) 插入一个元素进 this
contains(Integer val) 判断 this 中是否有元素 val
addAll(Collection e) 将一个容器里的所有元素添加进 this
retainAll(Collection e) 将 this 改为两个容器内相同的元素(查重)
removeAll(Collection e) 将 this 中与 e 相同的元素删除

Map

Map 是维护键值对 <Key, Value> 的一种数据结构,其中 Key 唯一。

//随机位置插入的 Map
Map<Integer, Integer> map1 = new HashMap<>();
//保持插入顺序的 Map
Map<Integer, Integer> map2 = new LinkedHashMap<>();
//保持 key 有序的 Map,默认升序。
Map<Integer, Integer> map3 = new TreeMap<>();
Map<Integer, Integer> map4 = new TreeMap<>((x, y) -> {return y - x;});  // 降序

//遍历
for (int key : map1.keySet()) {
	//
}

//当Map[集合]中有这个key时,就使用这个key对应的value值,如果没有就使用默认值defaultValue
getOrDefault(Object key, V defaultValue)  

常用方法:

函数名 功能
put(Integer key, Integer value) 插入一个元素进 this
size() 返回 this 的长度
containsKey(Integer val) 判断 this 中是否有元素 key 为 val
get(Integer key) 将 this 中对应的 key 的 value 返回
keySet 将 this 中所有元素的 key 作为集合返回

String类方法

String name;
// 用于字符串拼接
StringBuilder sb = new StringBuilder();

//获取字符串长度
name.length());

//指定字符在此字符串中第一次出现的索引
name.indexOf('z'));
name.indexOf("zhj");
name.indexOf("zhj",0);//fromIndex指从哪边开始第一个出现

//"指定字符在此字符串中最后一次出现的索引";
name.lastIndexOf('z');
name.lastIndexOf("zhj");
name.lastIndexOf("zhj",5);//fromIndex指从哪边结束的最后一个出现
name.charAt(0);//返回对应索引上的字符

// 重复n次
name.repeat(n);

//将字符串转换为字符数组
name.toCharArray();

//将int型转换为字符串
String.valueOf(123);

//将String中所有字符变成小写/大写
name.toLowerCase();
name.toUpperCase();

//用新的str代替旧的str
name.replace("zhj","xxx");

String trim1 ="  zhj 123  ";
// 除去字符串前后空格
trim1.trim();

// 用特定规则分割字符串,比如','
String str1 = "aa,bb,cc";
String[] split1 = str1.split(",");
for (int i = 0; i < split1.length ; i++) {
	System.out.println(split1[i]);
}
// 或者
for (String s: str1.split(SEP)) {  
	、、、
}


// 截取字符,从beginIndex开始,包括第一个,不包括最后一个
name.substring(1);
name.substring(0,1);


// 比较两个字符串是否相等
String name2 = "ZHJ";
name.equals(name2));//false

// 判断字符串是否以指定的字符串开始/结束
name.startsWith("zhj");//true
name.endsWith("zhj");//true

// 字符串里是否包含指定的字符串
name.contains("zhj");//true

// 判断字符串长度是否为0;
name.isEmpty();//false

Math类方法整理

import java.math.*;
 
public class Test {
    public static void main(String[] args){
        //返回a的绝对值
        double a = -5.0;
        double abs = Math.abs(a);
        System.out.println("a的绝对值:"+abs);
 
        //返回两个数中的最大值、最小值
        double b =10.0;
        double max = Math.max(a,b);
        double min = Math.min(a,b);
        System.out.println("a,b的最大值为:"+max);
        System.out.println("a,b的最小值为:"+min);
 
        //产生一个0-1之间的随机数(包括0,不包括1)
        double random = Math.random();
        System.out.println("产生一个0-1之间的随机数:"+random);
 
        //返回a的3次幂, pow(a,2)就是平方
        double pow = Math.pow(a,3);
        System.out.println("a的3次幂为:"+pow);
 
        //返回b的平方根
        double sqrt = Math.sqrt(b);
        System.out.println("b的平方根为:"+sqrt);
 
        //返回c的对数
        double c = 8.0;
        double log = Math.log(c);
        System.out.println("c的对数为:"+log);
 
        //返回d的正弦值
        double d = 0.5;
        double sin = Math.sin(d);
        System.out.println("d的正弦值为:"+sin);
 
        //返回d的反正弦值
        double asin = Math.asin(d);
        System.out.println("d的反正弦值为:"+asin);
 
        //返回大于d的最小整数,并将该整数转化为double数据
        double ceil = Math.ceil(d);
        System.out.println("大于d的最小整数为:"+ceil);
 
        //返回小于d的最大整数,并将该整数转化为double数据
        double floor = Math.floor(d);
        System.out.println("小于d的最大整数为:"+floor);
 
        //返回某个数的四舍五入的值
        System.out.println(Math.round(15.6));
        System.out.println(Math.round(15.4));
        System.out.println(Math.round(-15.5));
        System.out.println(Math.round(-15.6));
        /*
        如果该数为非负数,小数大于或等于0.5入,小于0.5舍
        如果该数为负数,小数大于0.5入,小于或等于0.5舍
         */
    }
}

标签:Java,String,int,System,name,语法,new,Integer,刷题
From: https://www.cnblogs.com/CassieLeeH/p/16757648.html

相关文章

  • JavaScript 面试问题
    参考:https://github.com/lydiahallie/javascript-questions/语法......
  • 深入理解 JavaScript
    原型和继承__proto__属性对象有一个隐藏属性[[Prototype]],指向其原型(父类型),如果没有原型则为null。从对象中读取一个不存在的属性时,会自动往原型中查找这个属性,这就......
  • 力扣1(java&python)-两数之和(简单)
    题目:给定一个整数数组nums 和一个整数目标值target,请你在该数组中找出和为目标值target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个......
  • MySQL 基础语法
    SELECT基础用法SELECTname,ageFROMuserDISTINCT——对检索结果去重应用于所有列而不仅是它后面的一列,所有列的值都不同才会被认为不同。SELECTDISTI......
  • JavaScript 基础
    1.对象对象创建创建对象的两种方法:构造函数:letuser=newObject();字面量:letuser={};对象是属性可以随意添加:点号:user.name="Mason"方括号:user["age"]=26......
  • Java程序员必备基础:JDK 5-15都有哪些经典新特性
    前言JDK15发布啦~我们一起回顾JDK5-15的新特性吧,大家一起学习哈~本文已经收录到github❝​​https://github.com/whx123/JavaHome​​❞「公众号:捡田螺的小男孩」Java5......
  • Java课堂学习总结
    对于Java字段的初始化来说,共有以下几种方法:1.类的构造函数(构造方法):当创建一个对象时,其构造函数就会自动调用。构造方法必须与类名相同,无返回值。如果程序员没有定义一......
  • java字节输入流
    字节输入流java.io.InputStream此抽象类是表示字节1输入流的所有的超类。定义了所有子类共有的方法:intread()从输入流中读取数据的下一个字节。intread(byte[]......
  • java--equals和模拟用户登录卫语句
    1.什么是卫语句卫语句就是把复杂的条件表达式拆分成多个条件表达式,减少嵌套。嵌套了好几层的if-then-else语句,转换为多个if语句,实现它的逻辑,这多条的if语句就是卫语句......
  • Linux正则表达式 - 语法
    正则表达式- 语法摘自:https://www.runoob.com/regexp/regexp-syntax.html 正则表达式(regularexpression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是......