问题是java: 需要class, interface或enum 程序要求解决的是求字符串数组中的子字符串

问题遇到的现象和发生背景

问题是java: 需要class, interface或enum
程序要求解决的是求字符串数组中的子字符串

问题相关代码,请勿粘贴截图
public class MinWords {
    public static void main(String[] args) {
        String [] arr={"word","words","word","system","system"};
        FindMinWords(arr);

    }
    public static void FindMinWords  (String [] arr){
        for(int i=0;i<arr.length;i++){
            for(int j=i+1;j<arr.length;j++){

                    System.out.println(StringMInString(arr[i],arr[j]));
                }
            }
        }

    }
    public static String StringMInString(String a,String b){
        int index=1;
        char[] chars = a.toCharArray();
        char[] chars1=b.toCharArray();
        if(chars.length>chars.length){
            char [] temp=chars1;
            chars1=chars;
            chars=temp;
        };
        for(int i=0;i<chars.length;i++){
            for(int j=0;j<chars1.length-chars.length;j++){

                if(chars[i]==chars1[j]){
                    for(int w=1;w<chars.length;w++){
                       if(chars[i+w]!=chars1[j+w]) {
                           index=0;
                           break;
                       }
                    }
                    if(index==1){
                        return chars.toString();
                    }
                }
                index=1;
            }
        }


    }
}

运行结果及报错内容

需要class, interface或enum

我的解答思路和尝试过的方法
我想要达到的结果

代码为什么会出现问题呢?求解答

第16行的"}"是多余的,所以编译系统以为你的class到第16行就结束了,它发出的编译错误是针对第17行开始的代码的。

代码问题有点多,可以先在本地编辑器中运行,调试好了,再提交。

FindMinWords()方法后面多了大括号。
StringMInString()方法内if后面多了分号。
修改如下:


public class MinWords {
    public static void main(String[] args) {
        String [] arr={"word","words","word","system","system"};
        FindMinWords(arr);
 
    }
    public static void FindMinWords  (String [] arr){
        for(int i=0;i<arr.length;i++){
            for(int j=i+1;j<arr.length;j++){
 
                    System.out.println(StringMInString(arr[i],arr[j]));
                }
            }
        }
    public static String StringMInString(String a,String b){
        int index=1;
        char[] chars = a.toCharArray();
        char[] chars1=b.toCharArray();
        if(chars.length>chars.length){
            char [] temp=chars1;
            chars1=chars;
            chars=temp;
        }
        for(int i=0;i<chars.length;i++){
            for(int j=0;j<chars1.length-chars.length;j++){
 
                if(chars[i]==chars1[j]){
                    for(int w=1;w<chars.length;w++){
                       if(chars[i+w]!=chars1[j+w]) {
                           index=0;
                           break;
                       }
                    }
                    if(index==1){
                        return chars.toString();
                    }
                }
                index=1;
            }
        }
    }
}

public class MinWords {
    public static void main(String[] args) {
        String[] arr = {"words","word",  "systems", "systems"};
        FindMinWords(arr);
    }

    public static void FindMinWords(String[] arr) {
        for (int i = 0; i < arr.length-1; i++) {
            for (int j = i + 1; j < arr.length; j++) {

                StringMInString(arr[i], arr[j]);
            }
        }
    }

    public static void StringMInString(String a, String b) {
        int index = 0;
        char[] chars = a.toCharArray();
        char[] chars1 = b.toCharArray();
        if (chars.length > chars1.length) {
            char[] temp = chars1;
            chars1 = chars;
            chars = temp;
        }
        ;
        int i = 0;
            for (int j = 0; j < chars1.length - chars.length+1; j++) {

                if (chars[i] == chars1[j]) {
                    index = 1;
                    for (int w = 1; w < chars.length; w++) {
                        if (chars[i + w] != chars1[j + w]) {
                            index = 0;
                            break;
                        }
                    }

                }


            }
        if(index==1){
            System.out.println(chars);
        }
        }



    }

问题已解决,以上为可正常运行的代码,谢谢各位的帮助!

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632