【Pre】Exercise Log
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的更多相关文章
- 【UFLDL】Exercise: Convolutional Neural Network
这个exercise需要完成cnn中的forward pass,cost,error和gradient的计算.需要弄清楚每一层的以上四个步骤的原理,并且要充分利用matlab的矩阵运算.大概把过程总结 ...
- 【原创】Kakfa log包源代码分析(二)
八.Log.scala 日志类,个人认为是这个包最重要的两个类之一(另一个是LogManager).以伴生对象的方式提供.先说Log object,既然是object,就定义了一些类级别的变量,比如定 ...
- 【科技】单 $\log$ 合并两棵有交集 FHQ-Treap 的方法
维护可分裂 & 合并的可重集 考虑这样一个问题: 维护 \(n\) 个 可重集 \(S_1, S_2, \cdots, S_n\),元素值域为 \([1, U]\),初始集合为空.支持一下操作 ...
- 【朝花夕拾】Android Log篇
前言 从事Android开发的这些年中,经常碰到这样一个现象:同一款app中,往往有好几种风格迥异的log处理方式,有时候会让维护者晕头转向.同时笔者也经常碰带一些模棱两可的问题:Log等级分好几种 ...
- 【DeepLearning】Exercise:Softmax Regression
Exercise:Softmax Regression 习题的链接:Exercise:Softmax Regression softmaxCost.m function [cost, grad] = ...
- 【DeepLearning】Exercise:Learning color features with Sparse Autoencoders
Exercise:Learning color features with Sparse Autoencoders 习题链接:Exercise:Learning color features with ...
- 【DeepLearning】Exercise: Implement deep networks for digit classification
Exercise: Implement deep networks for digit classification 习题链接:Exercise: Implement deep networks fo ...
- 【DeepLearning】Exercise:Sparse Autoencoder
Exercise:Sparse Autoencoder 习题的链接:Exercise:Sparse Autoencoder 注意点: 1.训练样本像素值需要归一化. 因为输出层的激活函数是logist ...
- 【原创】Kakfa log包源代码分析(一)
Kafka日志包是提供的是日志管理系统.主要的类是LogManager——该类负责处理所有的日志,并根据topic/partition分发日志.它还负责flush策略以及日志保存策略.Kafka日志本 ...
- 【MySQL】redo log --- 刷入磁盘过程
1.redo log基本概念 redo log的相关概念这里就不再过多阐述,网上有非常多的好的资料,可以看下缥缈大神的文章:https://www.cnblogs.com/cuisi/p/652507 ...
随机推荐
- Ubuntu 装卸Opencv
buntu中卸载opencv的方法: 1.打开ubuntu: 2.找到当初安装opencv的build目录,进入该build目录执行卸载操作: 3.通过rm命令清理/usr中所有opencv相关项即可 ...
- 命名空间“System.Web.UI.Design”中不存在类型或命名空间名称“ControlDesigner”
命名空间"System.Web.UI.Design"中不存在类型或命名空间名称"ControlDesigner" 命名空间"System.Web.UI ...
- vmstorage如何将原始指标转换为有组织的历史
vmstorage如何将原始指标转换为有组织的历史 参考自:vmstorage-how-it-handles-data-ingestion vmstorage是VictoriaMetrics中负责处理 ...
- 搭建gitlab私有仓库
1.下载gitlab 首先在 /etc/yum.repos.d/目录下配置gitlab下载镜像源. # 进入目录 /etc/yum.repos.d/ cd /etc/yum.repos.d/ # 创建 ...
- 开箱你的 AI 语音女友「GitHub 热点速览」
随着大模型 API 服务的不断丰富,开发者无需再依赖昂贵的硬件,也能轻松开发出拥有强大 AI 能力的应用.这不仅降低了技术门槛,也激发了极客们的创造力. 就比如上周飙升 1.5k Star 的开源项目 ...
- arthas进行java应用不停服务情况下的class文件热部署更新
我们在工作的过程中会遇到java应用已经部署或升级投入使用,发现某个单元文件有bug需要修正,但是客户的应用目前不能停止,而且不能因为一个非致命的bug来进行整个平台的一次升级.我们需要进行单文件的更 ...
- java线上问题跟踪工具Arthas的第一次使用
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load.内存.gc.线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参.异常,监测方法执行耗时 ...
- S3基准测试工具 - Warp使用简介
本文分享自天翼云开发者社区<S3基准测试工具 - Warp使用简介>,作者:y****n 1.Warp⼯具简介 warp 是⼀款开源的S3基准测试⼯具,开源S3项⽬minio下的⼀个⼦项⽬ ...
- 如何让领导轻松在本地查看Allure报告
如何让领导轻松在本地查看Allure报告 问题描述 当我们把精心生成的Allure报告原始文件发送给领导后,领导直接打开index.html文件时,页面却一直处于加载状态,无法显示数据. 通过F12开 ...
- Q:nginx 访问报错403 forbidden
curl 访问本地时 403 forbidden 查看nginx日志,路径为/var/log/nginx/error.log (13: Permission denied),详细报错如下: 2021 ...