问题是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);
}
}
}
问题已解决,以上为可正常运行的代码,谢谢各位的帮助!
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!