首页 > 其他分享 >不管在什么时候,都要尽可能使用熟悉的惯用法和API

不管在什么时候,都要尽可能使用熟悉的惯用法和API

时间:2023-05-29 12:36:53浏览次数:61  
标签:word 惯用 StringBuffer System API 尽可能 println class out


//不管在什么时候,都要尽可能使用熟悉的惯用法和API。
//一个 char 不是一个 String,而是更像一个 int。
//Random.nextInt(int)的规范描述道:“返回一个伪随机的、均等地分布在从0
//(包括)到指定的数值(不包括)之间的一个int 数值”[Java-API]。

//3个bug:分支2永远不会到达;没有break,总是最后的default为最后内容;
//StringBuffer没有char参数构造器,new StringBuffer('M'); 调用的是设置缓冲区初始容量的int型构造器。
Random rnd = new Random();
StringBuffer word = null;
switch(rnd.nextInt(2)) {
	case 1: word = new StringBuffer('P');
	case 2: word = new StringBuffer('G');
	default: word = new StringBuffer('M');
}
word.append("a");
word.append('i');
word.append('n');
System.out.println(word);	//输出总是ain
		
//正确和更优雅的解决办法:
System.out.println("PGM".charAt(rnd.nextInt(3)) + "ain");

 

//String.replaceAll 接受了一个正则表达式作为它的第一个参数,而并非接受了一个字符序列字面常量。
//正则表达式“.”可以匹配任何单个的字符,要想只匹配句点符号,在正则表达式中的句点必须在其前面添加
//一个反斜杠(\)进行转义。
System.out.println(Puzzlers.class.getName().replaceAll(".", "/") + ".class");
//输出为:/.class
System.out.println(Puzzlers.class.getName().replaceAll("\\.", "/") + ".class");
//输出为:com/jaeson/javastudy/puzzler/Puzzlers.class
		
//在替代字符串中出现的反斜杠会把紧随其后的字符进行转义,从而导致其被按字面含义而处理了。
//Exception:String index out of range
try {
	System.out.println(Puzzlers.class.getName().replaceAll("\\.", File.separator) + ".class");
} catch (StringIndexOutOfBoundsException ex) {
	System.out.println("StringIndexOutOfBoundsException: " + ex.getMessage());
}

//使用1.5新的replace方法:它将模式和替代物都当作字面含义的字符串处理。
System.out.println(Puzzlers.class.getName().replace(".", File.separator) + ".class");

 

标签:word,惯用,StringBuffer,System,API,尽可能,println,class,out
From: https://blog.51cto.com/u_16131764/6370062

相关文章

  • Apifox 网页端调试本地接口
    1.下载浏览器插件https://cdn.apifox.cn/download/apifox-browser-extension/Apifox-browser-extension.zip下载后解压2.安装浏览器插件1)谷歌浏览器访问chrome://extensions/2)开启开发者模式3)点击加载已解压的扩展程序按钮,选择第1步中下载的浏览器插件Apifox-Agent-Chrome安......
  • DRF之通过GenericAPIView的视图子类实现数据的增删改查接口
    1、安装DRFpipinstalldjangorestframework2、将DRF注册到APP中INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','djan......
  • Rust Web 全栈开发之 Actix 尝鲜并构建REST API
    RustWeb全栈开发之Actix尝鲜并构建RESTAPI一、Actix尝鲜需要使用的crateactix-webv4.3.1actix-rtv2.8.0~via......
  • 05]ApiMateRadStudio.exe上传xls,自动生成pacsal代码
    ApiMateRadStudio.exe链接:https://pan.baidu.com/s/1Sd-teDIRX9ZV48j6Jgc_wQ提取码:7nk4 procedureTForm4.Button1Click(Sender:TObject);varxls:TXlsFile;beginxls:=TXlsFile.Create(true);tryCreateExcelFile(xls);//将文件保存为XLSifO......
  • netcore MiniAPI的使用
    usingMicrosoft.EntityFrameworkCore;publicstaticclassProductsModule{publicstaticvoidRegisterProductsEndpoints(thisIEndpointRouteBuilderendpoints){endpoints.MapGet("/products",async(MemberDbContextdbContext)=>......
  • postman与jmeter的API测试流程
    1.postman工具使用流程:\1.先熟悉接口文档以及各个接口的业务关系。包括关联、接口地址,请求方式,鉴权方式,入参和出参等。\2.然后编写好测试用例。\3.在postman先建好url不同的环境变量。\4.根据接口用例所属的模块新建集合管理。\5.在集合中不同模块下录入测试用例......
  • API的应用范围主要有哪些方面?
    ​  API(ApplicationProgrammingInterface)即应用程序接口,它是一组规则和工具,通过HTTP协议将两个软件应用程序之间的通信连接起来。API的设计可以使不同应用程序的数据和功能进行交互和共享,从而促进了各种应用程序和系统的整合。下面是API应用的主要范围。1.移动应用程......
  • API接口对电商平台有怎样的帮助?如何获取API接口?
    ​ API(ApplicationProgrammingInterface)接口对电商平台有很多帮助,下面列举几点:1.提高效率API接口可以让电商平台的不同模块之间进行快速的数据交互,帮助平台实现更高效的业务处理。比如,在订单管理和支付等方面,API接口可以让卖家直接与快递公司和支付渠道进行对接,从而提......
  • APIO2023 游记
    GDOI和GDKOI的游记都咕咕咕了,而且都炸了,APIO的游记提前发,就是要破釜沉舟。我是线上选手。Day-7我们原题检测,阿克了,毕竟是原题,虽然有两道博弈论黑题确实挺毒瘤的。教练让我做APIO2012的原题,第一题一开始的思路有点小问题,不过发现是启发式合并就很简单了,切了。第二题感......
  • 配置 Orchestra Python API
    简介:OrchestraPythonAPI是开发者构建本地工具链的定海神针,你可以轻而易举的把它集成到制作流程中,拓展自身业务的边界。OrchestraPythonAPI与网页端接口高度同构,不仅易于理解和使用,还兼容python2.7至3.11的版本。OrchestraPythonAPI工具并不附带Python运行环境......