前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 机试问题汇总

Java 机试问题汇总

作者头像
matt
发布2022-10-25 15:52:57
3220
发布2022-10-25 15:52:57
举报
文章被收录于专栏:CSDN迁移

Java 输入输出

一、输入输出

https://www.cnblogs.com/SaraMoring/p/5851247.html

next() 1、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。 2、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。 3、不能得到带有空格的字符串。

nextLine(): 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。 2、可以获得空白。

注意:很多题目可以直接读一行输出一行,不需要全部存储然后一起输出! Scanner.useDelimiter(“字符”)方法,可以将分隔符号修改为指定的字符,如“\r\n”。

二、字符串拆分

  1. indexOf() (1)带一个参数:indexOf(String s),注:表示从字符串中找到字符串s返回他所在的位置,找不到返回-1。 (2)带两个参数:int indexOf(String s, int fromIndex),注:s表示查找的字符串,fromIndex表示从s字符串的第fromIndex个字符开始查找到的位置,如果找不到返回-1。 (3)也有lastIndexOf()函数。 注意:因为是index,所以数值都是下标号,也即序号为0~len-1; 查找的值可以是字符串也可以是字符。
  2. substring() (1)带一个参数:substring(int beginIndex), 注:表示从字符串beginIndex的下标位置开始截取(包含第index位的字符)。 (2)带两个参数:substring(int beginIndex, int endIndex), 注:表示截取字符串中第beginIndex位到第endIndex位之间的字符(包含第index位,不包含第endnum位) 注意:可以结合indexOf来使用:String s = str.substring(str.indexOf('/') + 1);str.substring(i, i + 1)表示第i个下标的字符,相应的(i, i)即为空。
  3. subSequence() 带两个参数:subSequence(int beginIndex, int endIndex),注:和substring类似(包含第index位,不包含第endnum位)。 注意:substring返回的是String,subSequence返回的是实现了CharSequence接口的类。
  4. split() (1)带一个参数:split(String s),注:表示根据字符(串)s来拆分字符串str,其中s可以是多个字符(串)。 (2)带两个参数:split(String s, int limit),注:limit表示限制String[]的长度,-1为无限制,否则只会拆分前面的若干个。 示例:String[] strs = str.split("\\\\"); 注意:正则表达式中的符号需要用\\来转义,\则用"\\\\"来表示; 如果使用多个分隔符则需要借助 | 符号,但需要转义符的仍然要加上分隔符进行处理,如split("\\^|@|a1#")会根据^、@、a1#三个字符(串)来拆分。
  • 引申:null和“” 因为null不是对象,但“”是一个对象,比较字符串对象使用equals,比较是否为null用==;我们比较的是后通常是先判断是不是一个对象,在判断是否为空字符串if(str==null || str.equals(""))。 对于if(str.equals(""))和**if(("").equals(str))**这两种判断为空的形式,后者更好一点,因为前者需要判断是否为null,有时候可能会出现异常。而后者则不需要。

三、List自定义排序

将输入顺序排列的数据,按自然顺序大小排列。(默认正序/生序排列,o1 - o2)

代码语言:javascript
复制
List<Integer> list = new ArrayList<>(set);
Collections.sort(list, (o1, o2) -> {
	// 1表示交换,-1表示不交换
    if (o1 == o2) {
        return 0;
    } else if (o1 > o2){
        return -1;
    } else {
        return 1;
    }
});

注意:TreeSet直接可以实现,再转换成List即可。

四、背包问题

《背包九讲》

  1. 01背包
代码语言:javascript
复制
B(k, w)
k: 前k个物品,0~k
w: 剩下多少空间
含义:在背包容量剩余为w时,在0~k物品中最多可以装多少?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、

  • 求质因数 不断从2开始到N,如果N%i==0,则是最小因数。
  • 比较小数 判断小数部分,四舍五入:
代码语言:javascript
复制
int i = (int)d; // 获得整数部分
int result = (d - i) >= 0.5 ? i + 1 : i; // 四舍五入即与0.5比较
  • 限定范围为0~127 可以利用一个int[] ints = new int[128];的数组,根据位图法0/1来解决。 虽然byte类型范围为-128~127,但是最好避免使用它。Byte与Character区别很大。
  • 进制问题
代码语言:javascript
复制
// 其中i为int或Integer类型
Integer.toBinaryString(i));  //返回i的二进制的字符串表示
Integer.toOctalString(i));   //返回i的八进制的字符串表示
Integer.toHexString(i));     //返回i的十六进制的字符串表示
Integer.toString(i, 10));    //返回i的p(10)进制的字符串表示
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java 输入输出
  • 一、输入输出
  • 二、字符串拆分
  • 三、List自定义排序
  • 四、背包问题
  • 五、
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档