首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2013-09-13 
从“统计一个字符在字符串中所有的位置”看数组的扩展问题我们先明确一点,Java数组对象的大小是固定的,数组

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

我们先明确一点,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;}}


 

 

热点排行