手写代码 - java.lang.String/StringBuilder 相关
语言:Java
String.substring(int , int ) -- 截取某个区间的string
- /**
- * Returns a string that is a substring of this string. The
- * substring begins with the character at the specified index and
- * extends to the end of this string. <p>
- * Examples:
- * <blockquote><pre>
- * "unhappy".substring(2) returns "happy"
- * "Harbison".substring(3) returns "bison"
- * "emptiness".substring(9) returns "" (an empty string)
- * </pre></blockquote>
- *
- * @param beginIndex the beginning index, inclusive.
- * @return the specified substring.
- * @exception IndexOutOfBoundsException if
- * {@code beginIndex} is negative or larger than the
- * length of this {@code String} object.
- */
- public String substring(int beginIndex) {
- if (beginIndex < 0) {
- throw new StringIndexOutOfBoundsException(beginIndex);
- }
- int subLen = value.length - beginIndex;
- if (subLen < 0) {
- throw new StringIndexOutOfBoundsException(subLen);
- }
- return (beginIndex == 0) ? this : new String(value, beginIndex, subLen);
- }
- /**
- * Returns a string that is a substring of this string. The
- * substring begins at the specified {@code beginIndex} and
- * extends to the character at index {@code endIndex - 1}.
- * Thus the length of the substring is {@code endIndex-beginIndex}.
- * <p>
- * Examples:
- * <blockquote><pre>
- * "hamburger".substring(4, 8) returns "urge"
- * "smiles".substring(1, 5) returns "mile"
- * </pre></blockquote>
- *
- * @param beginIndex the beginning index, inclusive.
- * @param endIndex the ending index, exclusive.
- * @return the specified substring.
- * @exception IndexOutOfBoundsException if the
- * {@code beginIndex} is negative, or
- * {@code endIndex} is larger than the length of
- * this {@code String} object, or
- * {@code beginIndex} is larger than
- * {@code endIndex}.
- */
- public String substring(int beginIndex, int endIndex) {
- if (beginIndex < 0) {
- throw new StringIndexOutOfBoundsException(beginIndex);
- }
- if (endIndex > value.length) {
- throw new StringIndexOutOfBoundsException(endIndex);
- }
- int subLen = endIndex - beginIndex;
- if (subLen < 0) {
- throw new StringIndexOutOfBoundsException(subLen);
- }
- return ((beginIndex == 0) && (endIndex == value.length)) ? this
- : new String(value, beginIndex, subLen);
- }
String.charAt(int) -- String中某个位置的字符
- /**
- * Returns the {@code char} value at the
- * specified index. An index ranges from {@code 0} to
- * {@code length() - 1}. The first {@code char} value of the sequence
- * is at index {@code 0}, the next at index {@code 1},
- * and so on, as for array indexing.
- *
- * <p>If the {@code char} value specified by the index is a
- * <a href="Character.html#unicode">surrogate</a>, the surrogate
- * value is returned.
- *
- * @param index the index of the {@code char} value.
- * @return the {@code char} value at the specified index of this string.
- * The first {@code char} value is at index {@code 0}.
- * @exception IndexOutOfBoundsException if the {@code index}
- * argument is negative or not less than the length of this
- * string.
- */
- public char charAt(int index) {
- if ((index < 0) || (index >= value.length)) {
- throw new StringIndexOutOfBoundsException(index);
- }
- return value[index];
- }
String.length() -- 可以直接获得string的长度
String.indexOf(char) -- 找到返回index,找不到返回-1
相关重载:
String.indexOf(String)
String.indexOf(String,int fromIndex)
String.indexOf(int unicode)
String.indexOf(int unicode,int fromIndex)
String.split(" ") -- 必须是双引号
- //必须是双引号!!!不能是单引号
- String[] splitArray = s.split(" ");
倒叙插入字符
如果需要倒叙插入字符,有两种方法:
方法一:复杂度O(n2),背离StringBuilder()初衷
- StringBuilder sb = new StringBuilder();
- for(int i=0;i<100;i++){
- sb.insert(0, Integer.toString(i));
- }
方法二:复杂度下降为O(n)
- StringBuilder sb = new StringBuilder();
- for(int i=0;i<100;i++){
- sb.append(Integer.toString(i));
- }
- sb.reverse();
- return result.toString();
String.isEmpty()
String默认只有String.isEmpty()函数,没有isNullOrEmpty()函数。
手写代码 - java.lang.String/StringBuilder 相关的更多相关文章
- 手写代码 - java.util.Arrays 相关
1-拷贝一个范围内的数组 Arrays.copyOfRange( array, startIndex, endIndex); include startIndex... exclude endInde ...
- 手写代码 - java.util.List 相关
1-ArrayList 访问元素,不能使用ArrayList[0]形式!!!! 必须使用ArrayList.get(0);
- 能不能自己写个类,也叫java.lang.String?
可以,但在应用的时候,需要用自己的类加载器去加载,否则,系统的类加载器永远只是去加载jre.jar包中的那个java.lang.String.由于在tomcat的web应用程序中,都是由webapp自 ...
- java.lang.String & java.lang.StringBuilder
java.lang.String & java.lang.StringBuilder String 成员方法 作用 public charAr(int index) 返回给定位置的代码单元 p ...
- 【Java面试题】53 能不能自己写个类,也叫java.lang.String?
可以,但是即使你写了这个类,也没有用. 这个问题涉及到加载器的委托机制,在类加载器的结构图(在下面)中,BootStrap是顶层父类,ExtClassLoader是BootStrap类的子类,ExtC ...
- 能否自己也写一个类叫做java.lang.String?
这次的随笔很逗吧~没错,我们的确也可以自己在创建一个包java.lang,然后在 相应的包下面创建一个对应的类String,但是在每次jre运行的时候,我们都回去加载原来默认的java.lang.St ...
- java.lang.String中的replace方法到底替换了一个还是全部替换了。
你没有看错我说的就是那个最常用的java.lang.String,String可以说在Java中使用量最广泛的类了. 但是我却发现我弄错了他的一个API(也可以说是两个API),这个API是关于字符串 ...
- Java源码学习 -- java.lang.String
java.lang.String是使用频率非常高的类.要想更好的使用java.lang.String类,了解其源代码实现是非常有必要的.由java.lang.String,自然联想到java.lang ...
- 从源码分析java.lang.String.isEmpty()
今天在写代码的时候用到了java.lang.String.isEmpty()的这个方法,之前也用过,今天突发奇想,就看了看源码,了解了解它的实现方法,总结出来,大家可以交流交流. 通常情况下,我们使用 ...
随机推荐
- 递归思维判断数组a[N]是否为一个递增数组
递归的方法:记录当前最大的,并且判断当前的是否比这个还大,大则继续,否则返回false结束: bool fun( int a[], int n ) { ) { return true; } ) { ] ...
- gulp入门指南
1. 全局安装 gulp: $ npm install --global gulp 2. 作为项目的开发依赖(devDependencies)安装: $ npm install --save-dev ...
- 关于串session
关于session: 最近在用IE浏览器调试不同用户所拥有的权限功能,出现了串session.串session,主要的流程结构如下: 解决方法: 在IE快捷方式上点击鼠标右键>属性>快捷方 ...
- linux下测试磁盘的读写IO速度-简易方法
linux下测试磁盘的读写IO速度-简易方法 参考资料:https://blog.csdn.net/zqtsx/article/details/25487185 一:使用hdparm命令 这是一个是用 ...
- JavaSE_坚持读源码_Class对象_Java1.7
Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识.这项信息纪录了每个对象所属的类.虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类 ...
- Hbase balancer RSgroup shell 脚本
#!/bin/bashTMP_FILE=tmp_groupsGROUPS_FILE=groups.txtecho "list_groups" | hbase shell > ...
- 来自Composer中文网安装composer指南
如果有需要安装composer的童鞋可以参考这个文章配置自己的composer https://pkg.phpcomposer.com/#how-to-install-composer 这里可能会出很 ...
- mysql导入导出sql文件,source导入速度慢的解决办法
1.导出整个数据库mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -u dbuser -p dbname > dbname.sql2.导出一个表mys ...
- Silverlight中字典的使用
通过值搜索字典中的项: FristOfDefault返回序列中满足条件的第一个元素:如果未找到这样的元素,则返回默认值.
- Slider绑定事件,初始化NullPointerException错误
最近刚刚接触Silverlight,随便在网上找了一个入门的博文http://www.cnblogs.com/Terrylee/archive/2008/03/07/Silverlight2-step ...