读书人

从“统计一个字符在字符串中所有的位置

发布时间: 2013-09-13 21:12:00 作者: rapoo

从“统计一个字符在字符串中所有的位置”看数组的扩展问题

我们先明确一点,Java数组对象的大小是固定的,数组对象是丌能扩展的,我们利用数组复制的方法可以变通的实现数组扩展。创建数组副本的同时将数组长度增加就变通的实现了,数组的扩展。
 System.arraycopy() 可以复制数组
 Arrays.copyOf() 可以简便的创建数组副本

统计一个字符在字符串中所有的位置。比如"统计一个字符在字符串中所有的位置"这个字符串中的"字"出现2次,分别出现在下标4和7的位置。要求,将下标位置放入到一个int数组中,每找到一个就放入并对数组扩容。

import java.util.Arrays;public class CharCountDemo {/** * 统计一个字符在字符串中所有的位置。比如"统计一个字符在字符串中所有的位置"这个字符串中的"字"出现2次, * 分别出现在下标4和7的位置。要求,将下标位置放入到一个int数组中,每找到一个就放入并对数组扩容。 */public static void main(String[] args) {// TODO Auto-generated method stub       String str="统计一个字符在字符串中所有的位置";       int[]arr=countAll(str,'字');       System.out.println(Arrays.toString(arr));}private static int[] countAll(String str, char ch) {// TODO Auto-generated method stubint []ary={};for(int i=0;i<str.length();i++){char c=str.charAt(i);if(c==ch){ary=Arrays.copyOf(ary, ary.length+1);//标记所在的位置,并存入数组ary[ary.length-1]=i;}}return ary;}}


读书人网 >编程

热点推荐