prettyboy434 2011-04-12 18:57
浏览 263
已采纳

求帮忙,java中关于数组的组合

String arrs={'D','S-X','D','S','C-Z','P'}
数组里的是“大厦的收藏品”的首字母,因为厦和藏都是多音字,现在要求把所有的首字母组合输出
如:DSDSCP DXDSZP DXDSCP DSDSZP,一时想不到实现方法
希望给点思路,能上代码更好。

  • 写回答

2条回答 默认 最新

  • turing-complete 2011-04-12 19:57
    关注

    [code="java"]
    import java.util.LinkedList;

    //采用广度优先遍历

    public class BroadFirst {

    //用于存储遍历情况的列表   
    private LinkedList<String> list=new LinkedList<String>();   
    //传入的参数   
    private String[][] para=null;   
    
    public BroadFirst(String[][] para){   
        this.para=para;   
        //将第一个列表添加到遍历列表的前端   
        for(String str:this.para[0]){   
            this.list.addLast(str);   
        }   
        //产生序列   
        this.createSequence();   
    }   
    
    private void createSequence() {   
        int innerLength = 1;   
        while (true) {   
            String temp = this.list.pollFirst();   
            innerLength = temp.length();   
            // 深度够了则执行完成   
            if (innerLength == para.length) {   
                this.list.addFirst(temp);   
                return;   
            } else {   
                for (String innerStr : this.para[innerLength]) {   
                    // 依次入队列的末端   
                    this.list.addLast(temp + innerStr);   
    
                }   
            }   
        }   
    }   
    
    public void printString(){   
    
        for(String str:this.list){   
            System.out.println(str);   
        }   
    }   
    //测试   
    public static void main(String[] args) {   
        String[][] temp={{"D"},{"S","X"},{"D"},{"S"},{"C","Z"},{"P"}};
        BroadFirst bf=new BroadFirst(temp);   
        bf.printString();   
    }   
    

    }
    [/code]
    输出:
    DSDSCP
    DSDSZP
    DXDSCP
    DXDSZP
    //看看这个能不能满足你的需要

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形