精华内容
下载资源
问答
  • 这篇文章主要介绍了Java使用split截取字符串过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下作用背景:一串字符串中的信息有些是有用的有些是多余的,...

    这篇文章主要介绍了Java使用split截取字符串过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    作用背景:一串字符串中的信息有些是有用的有些是多余的,我们需要把多余的信息去掉

    例:"11,22,33,44,55"

    这串字符串中我们要取出所有非","的内容

    public class test {

    public static void main(String[] args) {

    String[] all = split_String("11,22,33,44,55", ",");

    for(int i=0;i

    System.out.print(all[i]);

    }

    }

    // 第一个参数是整个字符串,第二个参数是需要截取掉的字符串或字符

    public static String[] split_String(String s,String sp) {

    String[] all;

    all = s.split(sp);

    return all;

    }

    }

    实现效果:

    7fbdaf0463c93c3ede081870db28ef68.png

    可以看到字符串中的","已经全部去除了split(String sp)方法返回的是一个字符串数组,方法中的参数是需要去除的内容

    如果我们需要去除的内容不止",",我在去除掉","的同时也想去除掉数字1。这种多条件的情况只需要在条件间添加"|"就行了,如下:

    public class test {

    public static void main(String[] args) {

    String[] all = split_String("11,22,33,44,55", ",|1");

    for(int i=0;i

    System.out.print(all[i]);

    }

    }

    // 第一个参数是整个字符串,第二个参数是需要截取掉的字符串或字符

    public static String[] split_String(String s,String sp) {

    String[] all;

    all = s.split(sp);

    return all;

    }

    }

    效果如下:

    ltudpf30uxp.jpg

    可以看到字符串中的数字1和符号","已经全部去除了

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。

    展开全文
  • 回首忆惘然字符串操作优化 字符串对象 字符串对象或者其等价对象 (如 char 数组),在内存中总是占据最大的空间块,因此如何高效地处理字符...char 数组表示 String 的内容,它是 String 对象所表示字符串的超集。...

    d5991d2cab42289df31f1cb129c60fc3.png

    回首忆惘然

    字符串操作优化  字符串对象  字符串对象或者其等价对象 (如 char 数组),在内存中总是占据最大的空间块,因此如何高效地处理字符串,是提高系统整体性能的关键。  String 对象可以认为是 char 数组的延伸和进一步封装,它主要由 3 部分组成:char 数组、偏移量和 String 的长度。char 数组表示 String 的内容,它是 String 对象所表示字符串的超集。String 的真实内容还需要由偏移量和长度在这个 char 数组中进行定位和截取。  String 有 3 个基本特点:  1. 不变性;  2. 针对常量池的优化;  3. 类的 final 定义。  不变性指的是 String 对象一旦生成,则不能再对它进行改变。String 的这个特性可以泛化成不变 (immutable) 模式,即一个对象的状态在对象被创建之后就不再发生变化。不变模式的主要作用在于当一个对象需要被多线程共享,并且访问频繁时,可以省略同步和锁等待的时间,从而大幅提高系统性能。  针对常量池的优化指的是当两个 String 对象拥有相同的值时,它们只引用常量池中的同一个拷贝,当同一个字符串反复出现时,这个技术可以大幅度节省内存空间。  下面代码 str1、str2、str4 引用了相同的地址,但是 str3 却重新开辟了一块内存空间,虽然 str3 单独占用了堆空间,但是它所指向的实体和 str1 完全一样。代码如下清单 1 所示。  清单 1. 示例代码  输出如清单 2 所示。  清单 2. 输出结果  SubString 使用技巧  String 的 substring 方法源码在最后一行新建了一个 String 对象,new String(offset+beginIndex,endIndex-beginIndex,value);该行代码的目的是为了能高效且快速地共享 String 内的 char 数组对象。但在这种通过偏移量来截取字符串的方法中,String 的原生内容 value 数组被复制到新的子字符串中。设想,如果原始字符串很大,截取的字符长度却很短,那么截取的子字符串中包含了原生字符串的所有内容,并占据了相应的内存空间,而仅仅通过偏移量和长度来决定自己的实际取值。这种算法提高了速度却浪费了空间。  下面代码演示了使用 substring 方法在一个很大的 string 独享里面截取一段很小的字符串,如果采用 string 的 substring 方法会造成内存溢出,如果采用反复创建新的 string 方法可以确保正常运行。  清单 3.substring 方法演示  输出结果如清单 4 所示。  清单 4. 输出结果  ImprovedHugeStr 可以工作是因为它使用没有内存泄漏的 String 构造函数重新生成了 String 对象,使得由 substring() 方法返回的、存在内存泄漏问题的 String 对象失去所有的强引用,从而被垃圾回收器识别为垃圾对象进行回收,保证了系统内存的稳定。  String 的 split 方法支持传入正则表达式帮助处理字符串,但是简单的字符串分割时性能较差。  对比 split 方法和 StringTokenizer 类的处理字符串性能,代码如清单 5 所示。  切分字符串方式讨论  String 的 split 方法支持传入正则表达式帮助处理字符串,操作较为简单,但是缺点是它所依赖的算法在对简单的字符串分割时性能较差。清单 5 所示代码对比了 String 的 split 方法和调用 StringTokenizer 类来处理字符串时性能的差距。  清单 5.String 的 split 方法演示  输出如清单 6 所示:  清单 6. 运行输出结果  当一个 StringTokenizer 对象生成后,通过它的 nextToken() 方法便可以得到下一个分割的字符串,通过 hasMoreToken 方法可以知道是否有更多的字符串需要处理。对比发现 split 的耗时非常的长,采用 StringTokenizer 对象处理速度很快。我们尝试自己实现字符串分割算法,使用 substring 方法和 indexOf 方法组合而成的字符串分割算法可以帮助很快切分字符串并替换内容。  由于 String 是不可变对象,因此,在需要对字符串进行修改操作时 (如字符串连接、替换),String 对象会生成新的对象,所以其性能相对较差。但是 JVM 会对代码进行彻底的优化,将多个连接操作的字符串在编译时合成一个单独的长字符串。  以上实例运行结果差异较大的原因是 split 算法对每一个字符进行了对比,这样当字符串较大时,需要把整个字符串读入内存,逐一查找,找到符合条件的字符,这样做较为耗时。而 StringTokenizer 类允许一个应用程序进入一个令牌(tokens),StringTokenizer 类的对象在内部已经标识化的字符串中维持了当前位置。一些操作使得在现有位置上的字符串提前得到处理。 一个令牌的值是由获得其曾经创建 StringTokenizer 类对象的字串所返回的。  清单 7.split 类源代码  split 借助于数据对象及字符查找算法完成了数据分割,适用于数据量较少场景。  合并字符串  由于 String 是不可变对象,因此,在需要对字符串进行修改操作时 (如字符串连接、替换),String 对象会生成新的对象,所以其性能相对较差。但是 JVM 会对代码进行彻底的优化,将多个连接操作的字符串在编译时合成一个单独的长字符串。针对超大的 String 对象,我们采用 String 对象连接、使用 concat 方法连接、使用 StringBuilder 类等多种方式,代码如清单 8 所示。  清单 8. 处理超大 String 对象的示例代码  虽然第一种方法编译器判断 String 的加法运行成 StringBuilder 实现,但是编译器没有做出足够聪明的判断,每次循环都生成了新的 StringBuilder 实例从而大大降低了系统性能。  StringBuffer 和 StringBuilder 都实现了 AbstractStringBuilder 抽象类,拥有几乎相同的对外借口,两者的最大不同在于 StringBuffer 对几乎所有的方法都做了同步,而 StringBuilder 并没有任何同步。由于方法同步需要消耗一定的系统资源,因此,StringBuilder 的效率也好于 StringBuffer。 但是,在多线程系统中,StringBuilder 无法保证线程安全,不能使用。代码如清单 10 所示。  清单 10.StringBuilderVSStringBuffer  StringBuilder 数据并没有按照预想的方式进行操作。StringBuilder 和 StringBuffer 的扩充策略是将原有的容量大小翻倍,以新的容量申请内存空间,建立新的 char 数组,然后将原数组中的内容复制到这个新的数组中。因此,对于大对象的扩容会涉及大量的内存复制操作。如果能够预先评估大小,会提高性能。  数据定义、运算逻辑优化  使用局部变量  调用方法时传递的参数以及在调用中创建的临时变量都保存在栈 (Stack) 里面,读写速度较快。其他变量,如静态变量、实例变量等,都在堆 (heap) 中创建,读写速度较慢。清单 12 所示代码演示了使用局部变量和静态变量的操作时间对比。  清单 12. 局部变量 VS 静态变量  以上两段代码的运行时间分别为 0ms 和 15ms。由此可见,局部变量的访问速度远远高于类的成员变量。  位运算代替乘除法  位运算是所有的运算中最为高效的。因此,可以尝试使用位运算代替部分算数运算,来提高系统的运行速度。最典型的就是对于整数的乘除运算优化。清单 14 所示代码是一段使用算数运算的实现。  清单 14. 算数运算  两段代码执行了完全相同的功能,在每次循环中,整数 1000 乘以 2,然后除以 2。第一个循环耗时 546ms,第二个循环耗时 63ms。  替换 switch  关键字 switch 语句用于多条件判断,switch 语句的功能类似于 if-else 语句,两者的性能差不多。但是 switch 语句有性能提升空间。清单 16 所示代码演示了 Switch 与 if-else 之间的对比。  清单 16.Switch 示例  运行输出如清单 17 所示。  清单 17. 运行结果  1  2    172  93    使用一个连续的数组代替 switch 语句,由于对数据的随机访问非常快,至少好于 switch 的分支判断,从上面例子可以看到比较的效率差距近乎 1 倍,switch 方法耗时 172ms,if-else 方法耗时 93ms。  一维数组代替二维数组  JDK 很多类库是采用数组方式实现的数据存储,比如 ArrayList、Vector 等,数组的优点是随机访问性能非常好。一维数组和二维数组的访问速度不一样,一维数组的访问速度要优于二维数组。在性能敏感的系统中要使用二维数组,尽量将二维数组转化为一维数组再进行处理,以提高系统的响应速度。  清单 18. 数组方式对比

    展开全文
  • 字符串操作优化字符串对象字符串对象或者其等价对象 (如 char 数组),在内存中总是占据最大的空间块,因此如何高效地处理字符...char 数组表示 String 的内容,它是 String 对象所表示字符串的超集。String 的真实内...

    字符串操作优化

    字符串对象

    字符串对象或者其等价对象 (如 char 数组),在内存中总是占据最大的空间块,因此如何高效地处理字符串,是提高系统整体性能的关键。

    String 对象可以认为是 char 数组的延伸和进一步封装,它主要由 3 部分组成:char 数组、偏移量和 String 的长度。char 数组表示 String 的内容,它是 String 对象所表示字符串的超集。String 的真实内容还需要由偏移量和长度在这个 char 数组中进行定位和截取。

    String 有 3 个基本特点:

    1. 不变性;

    2. 针对常量池的优化;

    3. 类的 final 定义。

    不变性指的是 String 对象一旦生成,则不能再对它进行改变。String 的这个特性可以泛化成不变 (immutable) 模式,即一个对象的状态在对象被创建之后就不再发生变化。不变模式的主要作用在于当一个对象需要被多线程共享,并且访问频繁时,可以省略同步和锁等待的时间,从而大幅提高系统性能。

    针对常量池的优化指的是当两个 String 对象拥有相同的值时,它们只引用常量池中的同一个拷贝,当同一个字符串反复出现时,这个技术可以大幅度节省内存空间。

    下面代码 str1、str2、str4 引用了相同的地址,但是 str3 却重新开辟了一块内存空间,虽然 str3 单独占用了堆空间,但是它所指向的实体和 str1 完全一样。代码如下清单 1 所示。

    清单 1. 示例代码

    输出如清单 2 所示。

    清单 2. 输出结果

    SubString 使用技巧

    String 的 substring 方法源码在最后一行新建了一个 String 对象,new String(offset+beginIndex,endIndex-beginIndex,value);该行代码的目的是为了能高效且快速地共享 String 内的 char 数组对象。但在这种通过偏移量来截取字符串的方法中,String 的原生内容 value 数组被复制到新的子字符串中。设想,如果原始字符串很大,截取的字符长度却很短,那么截取的子字符串中包含了原生字符串的所有内容,并占据了相应的内存空间,而仅仅通过偏移量和长度来决定自己的实际取值。这种算法提高了速度却浪费了空间。

    下面代码演示了使用 substring 方法在一个很大的 string 独享里面截取一段很小的字符串,如果采用 string 的 substring 方法会造成内存溢出,如果采用反复创建新的 string 方法可以确保正常运行。

    清单 3.substring 方法演示

    输出结果如清单 4 所示。

    清单 4. 输出结果

    ImprovedHugeStr 可以工作是因为它使用没有内存泄漏的 String 构造函数重新生成了 String 对象,使得由 substring() 方法返回的、存在内存泄漏问题的 String 对象失去所有的强引用,从而被垃圾回收器识别为垃圾对象进行回收,保证了系统内存的稳定。

    String 的 split 方法支持传入正则表达式帮助处理字符串,但是简单的字符串分割时性能较差。

    对比 split 方法和 StringTokenizer 类的处理字符串性能,代码如清单 5 所示。

    切分字符串方式讨论

    String 的 split 方法支持传入正则表达式帮助处理字符串,操作较为简单,但是缺点是它所依赖的算法在对简单的字符串分割时性能较差。清单 5 所示代码对比了 String 的 split 方法和调用 StringTokenizer 类来处理字符串时性能的差距。

    清单 5.String 的 split 方法演示

    输出如清单 6 所示:

    清单 6. 运行输出结果

    当一个 StringTokenizer 对象生成后,通过它的 nextToken() 方法便可以得到下一个分割的字符串,通过 hasMoreToken 方法可以知道是否有更多的字符串需要处理。对比发现 split 的耗时非常的长,采用 StringTokenizer 对象处理速度很快。我们尝试自己实现字符串分割算法,使用 substring 方法和 indexOf 方法组合而成的字符串分割算法可以帮助很快切分字符串并替换内容。

    由于 String 是不可变对象,因此,在需要对字符串进行修改操作时 (如字符串连接、替换),String 对象会生成新的对象,所以其性能相对较差。但是 JVM 会对代码进行彻底的优化,将多个连接操作的字符串在编译时合成一个单独的长字符串。

    以上实例运行结果差异较大的原因是 split 算法对每一个字符进行了对比,这样当字符串较大时,需要把整个字符串读入内存,逐一查找,找到符合条件的字符,这样做较为耗时。而 StringTokenizer 类允许一个应用程序进入一个令牌(tokens),StringTokenizer 类的对象在内部已经标识化的字符串中维持了当前位置。一些操作使得在现有位置上的字符串提前得到处理。 一个令牌的值是由获得其曾经创建 StringTokenizer 类对象的字串所返回的。

    清单 7.split 类源代码

    split 借助于数据对象及字符查找算法完成了数据分割,适用于数据量较少场景。

    合并字符串

    由于 String 是不可变对象,因此,在需要对字符串进行修改操作时 (如字符串连接、替换),String 对象会生成新的对象,所以其性能相对较差。但是 JVM 会对代码进行彻底的优化,将多个连接操作的字符串在编译时合成一个单独的长字符串。针对超大的 String 对象,我们采用 String 对象连接、使用 concat 方法连接、使用 StringBuilder 类等多种方式,代码如清单 8 所示。

    清单 8. 处理超大 String 对象的示例代码

    虽然第一种方法编译器判断 String 的加法运行成 StringBuilder 实现,但是编译器没有做出足够聪明的判断,每次循环都生成了新的 StringBuilder 实例从而大大降低了系统性能。

    StringBuffer 和 StringBuilder 都实现了 AbstractStringBuilder 抽象类,拥有几乎相同的对外借口,两者的最大不同在于 StringBuffer 对几乎所有的方法都做了同步,而 StringBuilder 并没有任何同步。由于方法同步需要消耗一定的系统资源,因此,StringBuilder 的效率也好于 StringBuffer。 但是,在多线程系统中,StringBuilder 无法保证线程安全,不能使用。代码如清单 10 所示。

    清单 10.StringBuilderVSStringBuffer

    StringBuilder 数据并没有按照预想的方式进行操作。StringBuilder 和 StringBuffer 的扩充策略是将原有的容量大小翻倍,以新的容量申请内存空间,建立新的 char 数组,然后将原数组中的内容复制到这个新的数组中。因此,对于大对象的扩容会涉及大量的内存复制操作。如果能够预先评估大小,会提高性能。

    数据定义、运算逻辑优化

    使用局部变量

    调用方法时传递的参数以及在调用中创建的临时变量都保存在栈 (Stack) 里面,读写速度较快。其他变量,如静态变量、实例变量等,都在堆 (heap) 中创建,读写速度较慢。清单 12 所示代码演示了使用局部变量和静态变量的操作时间对比。

    清单 12. 局部变量 VS 静态变量

    以上两段代码的运行时间分别为 0ms 和 15ms。由此可见,局部变量的访问速度远远高于类的成员变量。

    位运算代替乘除法

    位运算是所有的运算中最为高效的。因此,可以尝试使用位运算代替部分算数运算,来提高系统的运行速度。最典型的就是对于整数的乘除运算优化。清单 14 所示代码是一段使用算数运算的实现。

    清单 14. 算数运算

    两段代码执行了完全相同的功能,在每次循环中,整数 1000 乘以 2,然后除以 2。第一个循环耗时 546ms,第二个循环耗时 63ms。

    替换 switch

    关键字 switch 语句用于多条件判断,switch 语句的功能类似于 if-else 语句,两者的性能差不多。但是 switch 语句有性能提升空间。清单 16 所示代码演示了 Switch 与 if-else 之间的对比。

    清单 16.Switch 示例

    运行输出如清单 17 所示。

    清单 17. 运行结果

    1

    2

    172

    93

    使用一个连续的数组代替 switch 语句,由于对数据的随机访问非常快,至少好于 switch 的分支判断,从上面例子可以看到比较的效率差距近乎 1 倍,switch 方法耗时 172ms,if-else 方法耗时 93ms。

    一维数组代替二维数组

    JDK 很多类库是采用数组方式实现的数据存储,比如 ArrayList、Vector 等,数组的优点是随机访问性能非常好。一维数组和二维数组的访问速度不一样,一维数组的访问速度要优于二维数组。在性能敏感的系统中要使用二维数组,尽量将二维数组转化为一维数组再进行处理,以提高系统的响应速度。

    清单 18. 数组方式对比

    展开全文
  • Java 小例子:字节截取字符串

    千次阅读 2009-08-08 21:13:00
    你可能会碰到这样的问题。比如发送短信,短信长度为 140 字节,如果文本超过了 140 个字节,...你希望有一个方法,字节来截取字符串,得到不超过 140 字节的最长子字符串。下面是一个例子:public class CutByBytes

    你可能会碰到这样的问题。比如发送短信,短信长度为 140 字节,如果文本超过了 140 个字节,你就必须将其截成多条。同时你又希望尽可能多的利用这 140 个字节。如果每个中文 2 字节,把短信内容限制在 70 个字符,那么英文较多的短信长度就被浪费了。你希望有一个方法,按字节来截取字符串,得到不超过 140 字节的最长子字符串。下面是一个例子:

         

    假设一段文字有 100 个字符,150 个字节,而我们要截取不超过 140 个字节,那么:

     

    我们首先从最长的子字符串开始。如果这个子字符串的字节长度超过了 140,那么去掉最后一个字符,继续判断,直到字节长度小于或等于 140 为止。

     

    PS:感谢 madodo 兄,我把脱裤子放屁的代码去掉了。

    展开全文
  • 字节数截取字符串

    2015-10-21 15:57:09
    代码字节数截取字符串编写一个截取字符串的函数,输入为一个字符串和字节数,输出为字节截取的字符串,但要保证汉子不被截取半个,如“我ABC”,4,应该截取为“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC...
  • 粗想一下,实现这个功能很容易,直接取字符串的长度(用length()方法),如果超出,就用substring()方法截在web开发中,会遇到这样一个问题,想让某个内容全部保持在一定长度范围内,未超出的行全部显示,超长的行只...
  • 1.编写一个截取字符串的函数,输入为一个字符串和字节数,输出为字节数截取的字符串,但是要保证汉子不被截半个,如:“我AB”,输入“我ABC汉子DEF”应该输出为“我ABC”而不是“我ABC”+汉的一半
  • import java.util.ArrayList; import java.util.List;...* 给定一个长字符串内容,返回一个数组 * * @param content * 所有的内容 * @param count * 需要每段截取的长度 * @return 所有分段的数组...
  • 行读取txt文件内容截取字符串

    千次阅读 2019-03-21 16:17:04
    要求:行读取文本文档中的内容 ,并截取相关内容显示在控制台 文档内容: 以第一行为例,需要输出:69 62 000144 1、新建module 2、在src目录下新建class文件 代码如下 import java.io.*; import ...
  • 粗想一下,实现这个功能很容易,直接取字符串的长度(用length()方法),如果超出,就用substring()方法截取一段,然后再在结尾处加上省略号。但实际上这样做是不行的,至少说是某种程度上得不到我们想要的结果,因为...
  • 问题:在项目中,当保存数据超过数据库字段列长度限制时,如何解决?一种常见的解决办法是:截串存取。顾名思义,就是对大文本...这里,提供一种工具类,用来分割文本字符串,返回List结果集供下一步使用。public c...
  • 问题:在项目中,当保存数据超过数据库字段列长度限制时,如何解决?一种常见的解决办法是:截串存取。顾名思义,就是对大文本...这里,提供一种工具类,用来分割文本字符串,返回List结果集供下一步使用。public c...
  • 如下字符串:希望每个括号之间的内容分一组变成子字符串,或者输出到文本每个括号之间的内容为一行。丢弃其余的部分 CF --> ('c1,t i t i t i t i t i t i t i t i t i t i t i t i t i t i t i t i t i t i t i t i...
  • Java如何实现字符串的分割 前言 本章对Java如何实现字符串的分割,是基于jDK1.8版本中的String.split()方法。 本文篇幅较长,内容较为复杂涉及到许多小细节,都是我在使用时候以及查阅资料时候遇到的坑,建议反复...
  • 问题:在项目中,当保存数据超过数据库字段列长度限制时,如何解决?一种常见的解决办法是:截串存取。顾名思义,就是对大文本...这里,提供一种工具类,用来分割文本字符串,返回List结果集供下一步使用。public c...
  • 问题:在项目中,当保存数据超过数据库字段列长度限制时,如何解决?一种常见的解决办法是:截串存取。顾名思义,就是对大文本...这里,提供一种工具类,用来分割文本字符串,返回List结果集供下一步使用。public c...
  • ------Java培训、Android培训、iOS培训、.Net培训、...1、字符串截取 从xx位置开始,到最后结束,包括xx: substringFromIndex: XX  从开始位置到指定位置xx,不包括xx: substringToIndex: XX rang变量内容
  • varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) n(-84~127) 可以存储正数、负数、零、定点数和精度为38位的浮点数...
  • Java总结 第三篇 常用工具类

    千次阅读 2016-04-07 17:16:17
    返回指定数组内容字符串表示形式。 Arrays copyOf 复制指定的数组,截取或用 null 填充(如有必要),以使副本具有指定的长度。 Arrays sort() 对指定的类 型数组数字升序进行排序。 Arrays binaryS
  • java面试宝典

    2013-02-28 16:04:01
    56、写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔。 14 59、Java 编程,打印昨天的当前时刻。 15 60、java 和javasciprt 的区别。 15 61、什么时候用assert? 16 62、error和exception有什么...
  • java范例开发大全

    2013-03-08 20:06:54
    实例42 字符串索引越界异常(StringIndexOutBounds) 60 实例43 操作错误(UnsupportedOperationException) 60 4.2 运行时异常 61 实例44 找不到指定类时发生的异常(ClassNotFoundException) 62 实例45 请求的...
  • java面试宝典2012

    2012-12-16 20:43:41
    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...
  • JAVA 范例大全 光盘 资源

    热门讨论 2012-03-07 16:30:00
    实例39 截取带汉字的字符串 91 实例40 替换字符串中的部分字符 92 实例41 Java字符串之密码加密 93 实例42 正则表达式验证字符串 95 第7章 Java常用类 98 实例43 数字的舍入 98 实例44 转换数字的进制 101 ...
  • JAVA面试宝典2010

    2011-12-20 16:13:24
    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...
  • Java面试宝典-经典

    2015-03-28 21:44:36
    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...
  • java范例开发大全源代码

    热门讨论 2011-10-30 23:31:51
     实例42 字符串索引越界异常(StringIndexOutBounds) 60  实例43 操作错误(UnsupportedOperationException) 60  4.2 运行时异常 61  实例44 找不到指定类时发生的异常(ClassNotFoundException) 62 ...
  • 最新Java面试宝典pdf版

    热门讨论 2011-08-31 11:29:22
    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...
  • Java面试宝典2012版

    2012-12-03 21:57:42
    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

空空如也

空空如也

1 2 3
收藏数 54
精华内容 21
关键字:

java按内容截取字符串

java 订阅