// 实现replace函数,不要使用字符串搜索替换函数。
public class Replace {
public static void main(String[] args) {
String info = "system runs";
System.out.println(replace(info, "st", "$$"));
}
public static String replace(String source, String toReplace, String replace) {
if (source == null || toReplace == null || replace == null) {
throw new RuntimeException("null is not allow.");
}
if (toReplace.length() > source.length()) {
throw new RuntimeException("error replace.");
}
int length = toReplace.length();
String temp = "";
StringBuffer buffer = new StringBuffer("");
for (int i = 0; i < source.length(); i++) {
if (i + length > source.length()) {
temp = source.substring(0, source.length());
} else {
temp = source.substring(i, i + length);
}
if (temp.equals(toReplace)) {
buffer.append(replace);
i = i + length - 1;
} else {
buffer.append(source.charAt(i));
}
}
return buffer.toString();
}
}
分享到:
相关推荐
- 字符串操作涉及字符串反转和替换,可以通过StringBuilder或StringBuffer类实现。 - 数据类型转换包括数值型字符与数字的相互转换,以及数字格式化。 - 日期和时间处理常用java.util.Date和java.time包,可以...
Python面试题汇总 Python 是如何进行内存管理的? Python 内部使用引用计数机制来保持追踪内存中的对象,所有对象都有引用计数。引用计数增加的情况有:1、一个对象分配一个新名称;2、将其放入一个容器中(如...
可以将URL字符串转化为哈希值,存储在一个哈希表中,新来的URL如果哈希值已存在则为重复。这种方法快速且有效,但需要注意URL的大小写和URL编码可能带来的影响。 3. **大整数的加减乘除**: 在计算机科学中,大...
Java的基础面试题通常涵盖以下几个核心领域: 1. **Java语法**:面试官可能会询问关于基本语法的问题,如变量声明、数据类型(原始类型与引用类型)、运算符、控制流程(if语句、for循环、while循环)、异常处理...
替换字符串则可以使用`replace()`方法。 - 数据类型转换:例如,`Integer.parseInt()`和`Double.parseDouble()`用于字符串转数字,`Integer.toString()`和`Double.toString()`用于数字转字符串。四舍五入可通过`...
- `intern()`方法会检查常量池中是否存在该字符串的实例,如果不存在,则会在常量池中创建一个该字符串的实例,并返回对该实例的引用;如果已存在,则返回常量池中该字符串的引用。 #### 十四、`Object`类中的公共...
- 字符串操作包括查找、替换、分割等。 - 可变类型(如列表、字典)和不可变类型(如字符串、元组)的修改行为不同。 - `is`检查对象标识,`==`检查值是否相等。 - 列表生成式用于快速创建列表,如等差序列。 -...
- 字符串连接、子串提取、替换、查找等相关操作是面试中常见的问题。 5. **内存管理**: - Java 使用垃圾收集器自动管理内存,分为堆内存和栈内存。 - 堆内存存储所有对象实例,而栈内存存储基本类型和对象引用...
- **ereg_replace** (已废弃):用于替换字符串中与正则表达式匹配的部分,不区分大小写。 - **preg_replace**:根据正则表达式来替换文本。它可以使用更多的替换选项,例如限制替换次数。 #### 二、safe_mode 的...
- re模块提供正则表达式匹配,用于字符串搜索、替换等操作。 - math模块包含了数学运算相关的函数和常量,如三角函数、对数等。 - datetime模块用于处理日期和时间,可以方便地获取和操作时间数据。 3. 全局变量...
### Java经典面试题知识点梳理 #### J2SE基础 1. **九种基本数据类型的大小,及其封装类**: - Java提供了八种基本数据类型(`byte`, `short`, `int`, `long`, `float`, `double`, `boolean`, `char`),每种类型...
- 替换字符串:Java提供`String`类的`replaceAll()`方法实现字符串的替换。 3. **数据类型转换**: - 数值型字符转换为数字:使用`parseInt()`或`parseDouble()`方法。 - 数字转换为字符:数字加空字符串转换,...
3. **#{}和${}**:#{}用于预编译,防止SQL注入,${}则是简单的字符串替换,存在SQL注入风险。 4. **实体类属性与表字段不一致**:可以使用`@Column`注解指定字段映射关系。 5. **模糊查询like**:使用`%`通配符,...
- **copy**:对于字符串,`copy`属性会创建一个字符串的副本,适用于不可变字符串如`NSString`。 - **strong**:对于`NSString`对象,使用`strong`与`copy`效果相同,但对于可变字符串如`NSMutableString`,则应使用...
在这种情况下,`s2`在编译时优化为常量池中的"ab",而`s5 = s3 + s4`会在运行时创建一个新的字符串对象,因此`s5 != s2`,返回`false`。 3. **final, finalize, finally的区别** - `final`:修饰符,用于声明变量...
至于编程题中的字符串反转及替换、编码转换、字符串分隔、打印昨天的当前时刻等,这些都是基础的字符串处理和时间处理操作,实际编码中常会用到。 最后,java和javascript虽然名字相似,但它们是完全不同的编程语言...
`String`类中没有`length`属性,只有`length()`方法,用于返回字符串的字符数量。 10. **==与equals的区别** `==`比较的是对象的引用,即判断两个变量是否指向内存中的同一个对象。而`equals()`方法用于比较对象...