如何获取字符串最后一个字符的索引?优化字符串插入避免硬编码偏移量
问题解答
一、获取字符串最后一个字符的索引
字符串索引从0开始计数,最后一个字符的索引等于字符串长度减1,通过str.length() - 1即可获取。需要注意提前判断字符串非空,避免空指针或索引越界:
String str = "testString"; if (!str.isEmpty()) { int lastCharIndex = str.length() - 1; char lastChar = str.charAt(lastCharIndex); }
二、优化字符串插入的实现方式
你代码中的+13是硬编码了"create table"的长度,这种写法维护性差,可通过提取关键词并动态计算长度来优化:
String query = "Create table asdas aaa (int(5), bbb varchar2(20));"; final String TARGET_KEYWORD = "create table"; int keywordIndex = query.toLowerCase().indexOf(TARGET_KEYWORD); StringBuilder sb = new StringBuilder(query); if (keywordIndex != -1) { String insertContent = "'" + db + "'."; // 用关键词的动态长度代替硬编码的13 sb.insert(keywordIndex + TARGET_KEYWORD.length(), insertContent); }
优化说明:
- 用常量统一管理目标关键词,避免重复书写和后续修改不一致
- 依赖
TARGET_KEYWORD.length()动态计算插入位置,彻底摆脱硬编码数字 - 简化拼接逻辑:简单字符串拼接直接用
+即可,JDK会自动优化为StringBuilder操作
内容的提问来源于stack exchange,提问作者vasu
相关产品推荐
相关产品推荐

