poj 1936 一道简单问题问题:All in All
我的算法对的,老师runtimeerror这是哪错了?我是java写的:packageStringOperate;importjava.util.Scanner;publ...
我的算法对的,老师runtime error 这是哪错了?
我是java写的:
package StringOperate;
import java.util.Scanner;
public class AllInAll {
/*
* 算法思想,从头到尾一个一个判断即可。
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
String sub,str;
String[] data;
while(line != null) {
data = line.split(" ");
sub = data[0]; str = data[1];
if(sub.length() > str.length()) {
System.out.println("No");
} else {
int i,j;
i = j = 0;
while( i < sub.length() && j < str.length()) {
if(sub.charAt(i) == str.charAt(j++)) i ++;
}
if(i >= sub.length())
System.out.println("Yes");
else
System.out.println("No");
}
line = sc.nextLine();
}
}
} 展开
我是java写的:
package StringOperate;
import java.util.Scanner;
public class AllInAll {
/*
* 算法思想,从头到尾一个一个判断即可。
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
String sub,str;
String[] data;
while(line != null) {
data = line.split(" ");
sub = data[0]; str = data[1];
if(sub.length() > str.length()) {
System.out.println("No");
} else {
int i,j;
i = j = 0;
while( i < sub.length() && j < str.length()) {
if(sub.charAt(i) == str.charAt(j++)) i ++;
}
if(i >= sub.length())
System.out.println("Yes");
else
System.out.println("No");
}
line = sc.nextLine();
}
}
} 展开
2个回答
展开全部
代码中:data = line.split(" ");//使用正则表达式“空格”切分字符串
如果输入的两个没有用空格分开 那么 data中就只有一个元素
执行str = data[1];语句时会出现数组下标越界异常如下所示:
erwt
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at com.work.test.AllInAll.main(AllInAll.java:17)
如果输入的两个没有用空格分开 那么 data中就只有一个元素
执行str = data[1];语句时会出现数组下标越界异常如下所示:
erwt
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at com.work.test.AllInAll.main(AllInAll.java:17)
更多追问追答
追问
但题目上写着一定一行有两个字符串且以空格分开啊?
追答
你在控制台输入的时候要注意 :输入两个字符串用空个分开
如:wert werty
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询