java —— 三道简单有趣的面试题

面试题:

在这里插入图片描述


每博一文案

你对我好,我会加倍对你好,你带我薄,我便不会期望,不合身的衣服,
不要穿,不适合的人,别再强求,听不懂的话,无需再解释,得不到
的感情,要学会放手。无需刻意迎合谁,无需刻意将就谁,不辜负
所有的遇见,也不遗憾所有的离开,你做你自己,我也做唯一的我自己
毕竟人生从来不求皆大欢喜,但求一个问心无愧。
                                      ——————  一禅心灵庙语


开胃菜

判断下面代码的运行结果:

public class Blog5 {
    public static boolean isAdmin(String userId) {
        return userId.toLowerCase() == "abmin";
        // toLowerCase() 将字符串中大写字符 转为 小写字符
    }
    public static void main(String[] args) {
        System.out.println(isAdmin("Admin"));

    }
}

在这里插入图片描述


解析

不是,为什么呢,toLowerCase() 的作用是将字符串中大写的字符转为小写字符,小写后字符串的结果不是相等吗? 嘿嘿,不要着急我们看看首先,字符串内容上的比较是不可以用 == 的而是用方法 equals() ,而字符串之间的 == 判断的是字符串引用的对象地址上是否相等,而我们查其 toLowerCase() 方法的源码:

public String toLowerCase(Locale locale) {
      return new String(result, 0, len + resultOffset);

该方法返回的是一个 new 对象,即对象的地址是不相等的,返回 false


中胃菜

判断下面代码的运行结果:

public class Blog5 {
    public static void main(String[] args) {
        boolean d = true ? false : true == true ? true : false;
        System.out.println(d);

        boolean b = false ? false : true == true ? true : false;
        System.out.println(b);
    }
}

在这里插入图片描述


解析

大家不要慌,

我们把代码解开一步一步看就明白了

在这里插入图片描述

在这里插入图片描述


结尾菜

输入多组字符串,去除其中的重复的字符,

如输入:abcdefabc

输出:abcdef

public class Blog5 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext()) {    // 无限输入
            String str = scanner.nextLine(); // 注意它不可以与 nextInt()一起使用,因为它会读取回车键
            StringBuffer ret = new StringBuffer();

            for(int i = 0;i < str.length();i++) {
                char ch = str.charAt(i);   // 取出字符串中每个对应下标的字符
                String tmp = ret.toString(); // 定义一个空的字符用于拼接

                if(!tmp.contains(ch+"")) {   // contains 判断字符串中是否存在该字符
                    ret.append(ch);  // 拼接上
                }
            }
            System.out.println(ret);

        }
    }
}

在这里插入图片描述


解析

首先使用:循环多组输入 while(scanner.hasNext()) ,使用StringBuffer ret = new StringBuffer() 定义拼接的字符,减少空间的消耗。详细解释大家可以移步到🔜🔜🔜 认识 String类_ChinaRainbowSea的博客-CSDN博客
遍历字符串,使用方法 charAt(i) 取出字符串中的每个字符,
再使用if(!tmp.contains(ch+“”)) 判断该字符串是否存在于该字符串中,存在返回 true ,不存在返回 false ,因为我们是要去掉重复的字符,
所以已经存在了的字符就不用拼接上了,所以我们需要不存在的字符取非一下 ,还有因为该方法接受的是字符串,所以我们让该字符拼接上一个 “” 空字符串,变成字符串,就好了,然后,不存在该字符串中的字符使用ret.append(ch) 拼接上,就好了,


最后:

限于自身水平,其中存在的错误,希望大家给予指教,韩信点兵——多多益善,谢谢大家,后会有期,江湖再见!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值