再一次回来

本文分享了一位编程爱好者的经历及他所创作的各种2D与3D游戏作品,包括仿CS游戏、俄罗斯方块、超级玛丽等,并提供了游戏源码的下载链接。

有些累。我这个爱好太特殊了,学计算机的人千千万,改行的人也有很多,为什么要学编程?原因也许只有两个字:爱好。有的网友想看看扫雷代码,原来的代码没了,没有关系,再做一版新的。

附:游戏作品下载地址:
3D游戏:
仿CS游戏源码
http://download.youkuaiyun.com/source/1124443
2D游戏:
俄罗斯方块源码(带烟花)
http://download.youkuaiyun.com/source/1519525
挖金子修订版源码和文档
http://download.youkuaiyun.com/source/1421628
超级玛丽制作揭秘文档
http://download.youkuaiyun.com/source/808632
超级玛丽第一版源码
http://download.youkuaiyun.com/source/497676
超级玛丽增强版源码
http://download.youkuaiyun.com/source/584350
纸牌源码
http://download.youkuaiyun.com/source/432977
挖金子第一版源码
http://download.youkuaiyun.com/source/412278

<think>我们讨论的是替换字符串中最后一出现的特定字符(或子字符串)。在Java中,没有内置的直接方法可以做到这一点,但我们可以通过一些技巧来实现。 思路: 1. 我们可以找到最后一出现的目标字符(或子字符串)的索引位置。 2. 然后,我们将原字符串分成两部分:从开始到目标出现位置之前的部分,以及从目标出现位置之后的部分。 3. 最后,我们将第一部分、替换字符串和第二部分拼接起来。 具体实现: 对于字符替换(最后一出现的字符): 使用 lastIndexOf(char) 方法找到最后一出现的索引,然后拼接字符串。 对于子字符串替换(最后一出现的子字符串): 使用 lastIndexOf(String) 方法找到最后一出现的索引,然后拼接字符串。 注意:如果目标字符或子字符串不存在,则直接返回原字符串。 两种实现方式: 方式1:替换最后一出现的字符(char) 方式2:替换最后一出现的子字符串(String) 下面分别给出两种方法: </think>### Java替换字符串中最后一出现的字符的方法 在Java中替换字符串最后一出现的字符,可以通过以下两种高效方法实现: --- #### 1. 使用 `lastIndexOf()` + 字符串拼接(推荐) ```java public static String replaceLastChar(String str, char target, char replacement) { int lastIndex = str.lastIndexOf(target); // 定位最后一出现的位置 if (lastIndex == -1) return str; // 未找到则返回原字符串 return str.substring(0, lastIndex) // 前半部分 + replacement // 替换字符 + str.substring(lastIndex + 1); // 后半部分 } // 使用示例 String result = replaceLastChar("hello.world.java", '.', '-'); // 结果:"hello.world-java" ``` **特点**: - 时间复杂度 $O(n)$,性能最优 - 无需处理正则转义 - 适用于精确字符替换[^1] --- #### 2. 使用正则表达式 `replaceFirst()` ```java public static String replaceLastWithRegex(String str, String target, String replacement) { // 反转字符串后替换第一出现,再反转回来 return new StringBuilder(str) .reverse() .toString() .replaceFirst(target, new StringBuilder(replacement).reverse().toString()) .reverse(); } // 使用示例 String output = replaceLastWithRegex("apple.banana.orange", "\\.", "-"); // 结果:"apple.banana-orange" ``` **特点**: - 支持正则表达式(如需替换`.`需转义为`\\.`) - 代码简洁但效率较低 ($O(3n)$) - 可用于复杂匹配场景[^2] --- ### 关键对比 | 方法 | 性能 | 正则支持 | 特殊字符处理 | |-----------------------|--------|----------|--------------| | `lastIndexOf()` | $O(n)$ | ❌ | 无需转义 | | 正则反转法 | $O(3n)$ | ✅ | 需转义 | > 💡 **建议**:优先使用`lastIndexOf()`方案,它在性能和可读性上更优[^1]。仅当需要正则匹配时选择反转法。
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值