a b c d java_java中数组String array{a,b,c,d,c,d,e}如何能把字段相同的分到另外的数组中...

展开全部

数组中提取相同的字母,可以使用string的charat方法遍历字母,放到一个string中,找到之后删除掉这62616964757a686964616fe59b9ee7ad9431333337613165个字母,接着遍历下一个,示例如下:package test1;

import java.util.Random;

public class ArrayTest {

public static void main(String[] args) {

//1、构建一个数组

String[] array={"a","b","c","d","c","d","e"};

//2、将数组中值的遍历成一个String

String str="";

for(int i=0;i

str+=array[i];

}

System.out.println("strlength="+str);//打印出str

//3、为了能够实现需求,构建一个StringBuffer,方便使用,用法可以在jdk api找查找

StringBuffer sbu=new StringBuffer(str);//用str构建一个StringBuffer

String flag[][]=new String[sbu.length()][2];//这里只是定一个固定长的二维数组,用来存放遍历到得字母和 出现的次数,比如(a,1)表示a出现了1次,只有在每个字母都不重复下才能装满

for(int j=0;j

flag[j][0]=sbu.charAt(j)+"";//二维数字第一列放字母

flag[j][1]=1+"";二维数字第二列放出现次数,至少会出现一次

for(int k=j+1;k

if(sbu.charAt(j)==sbu.charAt(k)){

sbu.deleteCharAt(k);//找到相同的字母,从StringBuffer中删除,这样下次就不会遍历它

flag[j][1]=Integer.parseInt(flag[j][1])+1+"";//长度加1

}

}

}

String a="{";

for(int i=0;i

if(flag[i][1]!=null){//上面说的flag二维不一定方面,所以判断一下再取值

String s=flag[i][0];//出现的字母

int num=Integer.parseInt(flag[i][1]);//出现的次数

System.out.println("字母:"+s+"出现了:"+num+"次");

int j=0;

for( j=0;j

a+=s;

}

if(j+1==num){

a+="}";

}else{

a+="}{";

}

}

}

System.out.println("结果是:"+a);

}

//说明一下,可以根据你自己的需要装

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值