有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

字符串列表的java组合

下面是我需要在特定条件下组合的字符串列表

“MSD”、“EEE”、“RSR”、“OCL”、“SMS”、“RTS”

组合的条件如下:

  1. 组合应该至少有两个字符串 (例如:(“EEE”
    (“EEE”、“RSR”、“OCL”))
  2. 组合应该由相邻字符串组成(例如:(“OCL”、“SMS”)、(“MSD”、“EEE”、“RSR”)有效。但不是(“EEE”、“OCL”)。自从“EEE”和“OCL” (彼此不在一起)

对于这个问题,Java实现非常受欢迎

public class Dummy {

    public static void main(String[] args) {
        String[] str = { "MSD" ,"EEE", "RSR", "OCL", "SMS","RTS" };
        List<String> list = new ArrayList<>();
        for (int j = 0; j < str.length; j++) {
            String temp = "";
            for (int i = j; i < str.length; i++) {
                temp = temp + " " + str[i];
                list.add(temp);
            }
        }

        for (String string : list) {
            System.out.println(string);
        }
    }
}

抱歉,我的代码更新太晚了


共 (1) 个答案

  1. # 1 楼答案

    for (int j = 0; j < str.length; j++) {
        String temp = "";
        for (int i = j; i < str.length; i++) {
            if ("".equals(temp))
                temp = str[i]; // assign the String to temp, but do not add to list yet
            else {
                temp = temp + " " + str[i];
                list.add(temp); // now that temp consists of at least two elements
                                // add them to the list
            }
        }
    }
    

    修复了单个条目也被列出的问题。从而导致:

    MSD EEE
    MSD EEE RSR
    MSD EEE RSR OCL
    MSD EEE RSR OCL SMS
    MSD EEE RSR OCL SMS RTS
    EEE RSR
    EEE RSR OCL
    EEE RSR OCL SMS
    EEE RSR OCL SMS RTS
    RSR OCL
    RSR OCL SMS
    RSR OCL SMS RTS
    OCL SMS
    OCL SMS RTS
    SMS RTS