zoukankan      html  css  js  c++  java
  • day 08---有用

    案例: 演示使用Scanner的小细节问题.

    问题描述:
    先用nextInt()接收用户录入的整数, 在用nextLine()接收用户录入的字符串, 会导致用户无法录入字符串的情况.
    产生原因:
    1. nextInt() 和 nextLine()的结束标记都是:
    2. nextInt()方法只接收用户录入的数字, 不识别(不接收)
    3. 遗留的 被 nextLine()方法识别到, 所以导致该方法直接结束, 没有让用户录入.
    解决方案:
    方式1: 重新new一个Scanner对象.
    方式2: 重新调用一次nextLine()方法.
    方式3: 通过 next()方法接收.
    方式4: 都用字符串接收, 然后把字符串形式的整

     

     

    案例: 演示字符串的常量优化机制.

    结论(记忆): Java中有常量优化机制:
    针对于byte类型:
    如果是变量相加:
    会提升类型, 然后在运算, 提升规则: byte, short, char -> int -> long -> float -> double
    如果是常量相加:
    会直接运算, 然后看结果在不在左边的数据类型范围内, 在, 不报错, 不在, 就报错.
    针对于String类型:
    如果是变量相加:
    会在堆区开辟空间.
    如果是常量相加:
    会直接在常量池中进行拼接, 不会在堆区开辟新空间.

    上述的相同点是: 如果同时有 变量 和 常量 参与操作, 按照 变量 的规则走.

     

     

     

    需求:
    1.定义方法reverse(), 实现字符串的反转.
    2.在main方法中键盘录入一个字符串, 调用上述的方法后, 在控制台输出结果.
    3.例如: 键盘录入abc, 输出结果cba.
    提示: 用for循环, 倒序遍历数组, 然后拼接每一个元素即可.
    */
    public class Demo06 {
    public static void main(String[] args) {
    //1. 提示用户录入字符串, 并接收.
    Scanner sc = new Scanner(System.in);
    System.out.println("请录入一个字符串: ");
    String str = sc.nextLine(); //abc

    //2. 定义一个新的字符串, 用来记录反转后的结果.
    String newStr = reverse(str);
    //6. 打印结果.
    System.out.println("反转后, 结果是: " + newStr);

    }

    public static String reverse(String str) {
    String newStr = "";

    //3. 把原始字符串转成字符数组.
    char[] chs = str.toCharArray(); //'a', 'b', 'c'

    //4. 倒序遍历, 获取每一个字符.
    for (int i = chs.length - 1; i >= 0; i--) {
    //chs[i] 记录的就是 原始字符串中的每一个字符. 'a', 'b', 'c'
    //5. 将获取到的字符拼接给: 新的字符串.
    newStr += chs[i];
    }

     

  • 相关阅读:
    数据库主从配置
    数据库导出导入
    MySQL命令行导出数据库
    [待完善]mycat使用(一)
    行转列group_concat()函数妙用
    sas和ssd盘写入数据效率对比
    MySQL库中表名忽略大小写设置的影响
    create table b1 as select * from b建表锁表测试
    SQL优化实战之加索引
    分区表主键不包含分区键报错ERROR 1105 (HY000)
  • 原文地址:https://www.cnblogs.com/shan13936/p/13833227.html
Copyright © 2011-2022 走看看