public class Insert {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(insert("ab打def", "abc", 3));
System.out.println(inversion("ab打def"));
}
/**
* 插入字符串
*/
public static String insert(String info, String insert, int index) {
if (info == null || insert == null) {
throw new NullPointerException(
"the insert string is null or the info string is null.");
}
if (info.length() < index) {
throw new IndexOutOfBoundsException(
"the insert index is out of bounds.");
}
char[] buffer = null;
if (info.length() == 0) {
return insert;
} else if (insert.length() == 0) {
return info;
} else {
buffer = new char[info.length() + insert.length()];
for (int i = 0; i < info.length(); i++) {
if (i < index) {
buffer[i] = info.charAt(i);
} else {
buffer[i + insert.length()] = info.charAt(i);
}
}
for (int i = 0; i < insert.length(); i++) {
buffer[index + i] = insert.charAt(i);
}
}
return new String(buffer);
}
/**
* 反转
*/
public static String inversion(String info) {
if (info == null) {
throw new NullPointerException("the info string is null.");
}
char[] buffer = new char[info.length()];
for (int i = 0; i < info.length(); i++) {
buffer[i] = info.charAt(info.length() - i - 1);
}
return new String(buffer);
}
}
分享到:
相关推荐
本资源摘要信息涵盖了计算机常见算法面试题,主要涉及链表、字符串操作、搜索算法等方面的知识点。下面是对标题、描述、标签和部分内容的详细解释: 标题:计算机常见算法面试题 该标题表明了这是一份计算机常见...
1. **Python基础**:包括语法、变量、数据类型(如字符串、列表、元组、字典)、流程控制(条件语句、循环)、函数定义和调用、模块导入等。 2. **数据结构**:深入理解列表、元组、集合和字典的操作,以及如何使用...
### Unity面试题(含C#)相关知识点解析 #### 一、值类型与引用类型的区别 1. **存储位置**: - **值类型**: 存储在内存栈中。 - **引用类型**: 数据存储在内存堆中,内存单元存放的是堆中数据的地址。 2. **访问...
以下是对【标题】“淘宝java面试题.pdf”中提及的两个知识点——`String`、`StringBuffer`、`StringBuilder`的区别以及`Vector`、`ArrayList`、`LinkedList`的区别进行详细解释: 一、`String`、`StringBuffer`、`...
Java后端开发面试题涉及到多个核心领域,包括Redis的使用场景和持久化机制、Docker与虚拟机的区别、MySQL调优、以及消息队列RabbitMQ的基础知识。下面将逐一详细解析这些知识点。 1. Redis应用场景: - a. 数据...
6. **字符串操作**:熟悉String类的常用方法和字符串池的概念。 7. **数组与集合**:掌握数组和集合的区别,以及ArrayList、LinkedList、HashSet等常用集合的特性。 其次,JVM面试题主要涉及Java虚拟机的工作原理:...
通过阅读《Java面试题1.doc》到《Java面试题5.doc》这五个文档,你可以深入学习和复习这些知识点,为面试做好充分准备。每个文档都可能包含了详细的解答和解析,帮助你理解和巩固这些重要的Java知识。
Java的基础知识包括语法特性、数据类型、运算符、流程控制语句(如if、switch、for、while)、数组、字符串、面向对象特性(封装、继承、多态)等。面试中可能会考察这些基本概念的理解和应用,例如类的设计、接口的...
【Java面试题解析】 1. **Java中实现多态的机制**:Java通过方法的重写(Overriding)和重载(Overloading)实现多态性。重写是子类对父类方法的重新定义,使得子类对象可以拥有与父类不同的行为;重载则是同一个类...
40. **模板字符串**:使用反引号 ` `` 包裹的字符串,可以插入变量和表达式。 41. **对象解构**:从数组或对象中提取值,并将其分配给变量。 42. **ES6 模块**:使用 `import` 和 `export` 关键字,支持静态的、可...
### Java面试题精析 #### 一、面向对象的四大特征 在Java中,面向对象编程的核心在于四个关键特征:抽象、继承、封装和多态。 1. **抽象**:抽象是面向对象编程的重要基石,它使我们能够关注对象的关键属性和行为...
### Java经典面试题知识点梳理 #### J2SE基础 1. **九种基本数据类型的大小,及其封装类**: - Java提供了八种基本数据类型(`byte`, `short`, `int`, `long`, `float`, `double`, `boolean`, `char`),每种类型...
### Java经典面试题知识点解析 #### 1. super()与this()的区别? - **super()**:用于调用父类的构造方法。在一个子类的构造方法中,如果要调用父类的构造方法,必须使用`super()`,并且这个调用语句必须放在子类...
`StringBuffer`和后来的`StringBuilder`类提供了可变字符串的操作,它们可以在字符串末尾添加、删除或插入字符,而不会创建新的对象,因此在需要频繁修改字符串时更加高效。 #### 三、基本数据类型与包装类 1. **...
3. **#{}和${}**:#{}用于预编译,防止SQL注入,${}则是简单的字符串替换,存在SQL注入风险。 4. **实体类属性与表字段不一致**:可以使用`@Column`注解指定字段映射关系。 5. **模糊查询like**:使用`%`通配符,...
算法方面,排序(如冒泡、选择、插入、快速、归并排序)、查找(线性、二分、哈希查找)、递归、动态规划等是常见的考察点。 三、内存管理 C++提供了对内存的直接管理,包括动态内存分配(new/delete)、内存泄漏...
Java面试题精华 以下是对Java面试题精华的知识点解析: 1. 面向对象的特征: Java语言是一种面向对象的编程语言,它具有四个基本特征:抽象、封装、继承和多态。抽象是指将复杂的实体简单化,以便更好地理解和...
因此,如果需要频繁修改字符串,应优先选择StringBuffer(对于多线程环境,使用StringBuffer,否则使用StringBuilder)。 3. **运行时异常与一般异常**:运行时异常(RuntimeException)是程序运行时可能会遇到的...