Pre2

#Task1

测评机(Java8)不支持enhanced Switch

Switch中,将case后的:改为->后,将会取消fall through,可以删去break;

#Task4

疏忽强转溢出的可能性

重写Equipment类的compareTo()时,对于price的比较直接使用了return (int) (this.price - other.price),然而long减long可能超过int范围导致溢出错判。

运用异常处理机制

#Task5

关于接口和接口引用的理解

Pre3

#Task1

Java8 不支持 String.isBlank()。改成 String.trim().isEmpty()

#Task3

正则表达式括号与捕获组

括号本身既区分优先级,又形成捕获组

:捕获字符串中可能出现的receiver(形如“@某用户”)

目标表达式 regexp = ((@[a-zA-Z0-9]+)?)

会分出两个捕获组。Matcher.find()始终为true;若不存在@[a-zA-Z0-9]则Matcher.group(1)返回"",Matcher.group(2)返回null

可以分别为group #1/group #2命名为"receiver":

  • (?<receiver>(@[a-zA-Z0-9]+)?)
  • ((?<receiver>@[a-zA-Z0-9]+)?)

正则表达式的包含关系导致无法匹配

public static final String DATE_PATTERN = "(?<year>\\d{1,4})" + "/" +
"(?<month>\\d{1,2})" + "/" + "(?<day>\\d{1,2})";
public static final String SENDER_PATTERN = "(?<sender>-[a-zA-Z0-9]+)";
public static final String RECEIVER_PATTERN = "((?<receiver>@[a-zA-Z0-9]+)?)"; public static final String MESSAGE_PATTERN = DATE_PATTERN + ".*"
+ SENDER_PATTERN + "[^@]*" + RECEIVER_PATTERN;
// 第二处连接若使用".*"则使用时将无法匹配RECEIVE_PATTERN

关于String.split()返回数组不定长

由于使用了SCANNER.next(),用String.split("\")分割"y\m\d"时,若读取值为"\"、"2021\"等时,数组长度不为3,与年月日匹配方法不符产生异常。

解决:创建长度3的数组来定长。使用System.arraycopy(Object[] src, int srcPos, Object[] dest, int destPos, int length),直接从内存拷贝数组。

【Pre】Exercise Log的更多相关文章

  1. 【UFLDL】Exercise: Convolutional Neural Network

    这个exercise需要完成cnn中的forward pass,cost,error和gradient的计算.需要弄清楚每一层的以上四个步骤的原理,并且要充分利用matlab的矩阵运算.大概把过程总结 ...

  2. 【原创】Kakfa log包源代码分析(二)

    八.Log.scala 日志类,个人认为是这个包最重要的两个类之一(另一个是LogManager).以伴生对象的方式提供.先说Log object,既然是object,就定义了一些类级别的变量,比如定 ...

  3. 【科技】单 $\log$ 合并两棵有交集 FHQ-Treap 的方法

    维护可分裂 & 合并的可重集 考虑这样一个问题: 维护 \(n\) 个 可重集 \(S_1, S_2, \cdots, S_n\),元素值域为 \([1, U]\),初始集合为空.支持一下操作 ...

  4. 【朝花夕拾】Android Log篇

    前言  从事Android开发的这些年中,经常碰到这样一个现象:同一款app中,往往有好几种风格迥异的log处理方式,有时候会让维护者晕头转向.同时笔者也经常碰带一些模棱两可的问题:Log等级分好几种 ...

  5. 【DeepLearning】Exercise:Softmax Regression

    Exercise:Softmax Regression 习题的链接:Exercise:Softmax Regression softmaxCost.m function [cost, grad] = ...

  6. 【DeepLearning】Exercise:Learning color features with Sparse Autoencoders

    Exercise:Learning color features with Sparse Autoencoders 习题链接:Exercise:Learning color features with ...

  7. 【DeepLearning】Exercise: Implement deep networks for digit classification

    Exercise: Implement deep networks for digit classification 习题链接:Exercise: Implement deep networks fo ...

  8. 【DeepLearning】Exercise:Sparse Autoencoder

    Exercise:Sparse Autoencoder 习题的链接:Exercise:Sparse Autoencoder 注意点: 1.训练样本像素值需要归一化. 因为输出层的激活函数是logist ...

  9. 【原创】Kakfa log包源代码分析(一)

    Kafka日志包是提供的是日志管理系统.主要的类是LogManager——该类负责处理所有的日志,并根据topic/partition分发日志.它还负责flush策略以及日志保存策略.Kafka日志本 ...

  10. 【MySQL】redo log --- 刷入磁盘过程

    1.redo log基本概念 redo log的相关概念这里就不再过多阐述,网上有非常多的好的资料,可以看下缥缈大神的文章:https://www.cnblogs.com/cuisi/p/652507 ...

随机推荐

  1. ctr命令的基本使用与技巧

    k8s早1.24后放弃docker,并把containerd作为运行时组件,containerd 调用链更短,组件更少,更稳定,占用节点资源更少 ctr是containerd的一个客户端工具 cric ...

  2. Docker 部署数据可视化 Superset 3.0.0 深度汉化并配置元数据存储为 Postgres

    services: postgres: image: postgres:14.10 container_name: postgres hostname: postgres environment: P ...

  3. 使用JSch进行sftp的连接运行状况检查

    public boolean checkConnection() throws JSchException { try { JSch jsch = new JSch(); Session sessio ...

  4. 在Asp.netCore中使用Attribute来描述限流

    前言 同事问我Asp.netCore的RateLimiting是怎么使用的,我回答说很简单的,你只要按照如下步骤来: 在RateLimiterOptions上注册policy,记住policy对应的p ...

  5. Qt/C++音视频开发65-切换声卡/选择音频输出设备/播放到不同的声音设备/声卡下拉框

    一.前言 近期收到一个用户需求,要求音视频组件能够切换声卡,首先要在vlc上实现,于是马不停蹄的研究起来,马上查阅对应vlc有没有自带的api接口,查看接口前,先打开vlc播放器,看下能不能切换,因为 ...

  6. AndroidStudio 彻底关闭http网络代理方法

    以前在AndroidStudio中设置完代理后,会在项目的gradle.properties文件中生成代理配置信息: 即使你在setting的http proxy中关掉代理,实际编译时还会使用上次设置 ...

  7. manim边学边做--改变动画速度

    ChangeSpeed类是Manim库中用于修改动画速度的类. 它提供了一种灵活的方式来控制动画的播放速度,使动画在不同时间段内以不同的速度播放,从而创造出更加丰富多样的动画效果. 比如,在创建包含多 ...

  8. Index - 此处的诗

    虚构往事 正篇   嗯--本来发过两篇,但深愧于仓促的处理和并未完善的细节设定,隐藏了.   大概会是一个中篇的科幻故事,世界设定已经完善了(Shaya 可以作证!),但近期可能没有精力动笔. 番外 ...

  9. SequoiaDB数据库-new数据库

    随着企业中日益复杂与多变的需求,以及迅速扩展带来的海量数据的业务,IT部门需要将越来越多的信息提供给用户,同时在现今的全球经济背景环境下,IT部 门还需要在提供高效服务的同时,降低其设备与程序维护成本 ...

  10. 了解GraphRAG

    了解GraphRAG 转载:从零实现大模型-GraphRAG,构建LLM中的关系数据库 开源地址:https://github.com/microsoft/graphrag 论文:From Local ...