import java.util.Scanner;
public class FileFilter{
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String[] filenames=new String[2];
int i=0;
for(i=0;i<filenames.length;i++){
System.out.println("please input the string");
String text=scanner.next();
filenames[i]=text;}
System.out.println("output the filterfile:");
if(filenames[i].endsWith("jpg")){
System.out.println(filenames[i]);
}
}
}
这样做为什么不行呢
javaä¸è¾å ¥çå符串主è¦æ¯ä½¿ç¨scannerç±»æ¥æ¥æ¶ç¨æ·ä»é®çè¾å ¥çæ°å¼ï¼ç¶å建ç«ä¸ä¸ªå符串æ°ç»æ¥èµå¼ï¼ä»£ç å¦ä¸ï¼
public class ceshi {public static void main(String[] args){
String[] s = new String[3];//å符串æ°ç»
Scanner sc = new Scanner(System.in);æ¥æ¶ç¨æ·ä»é®çè¾å ¥çå符串
String str = sc.next();
s[0]=str;//è¾å ¥çå符串strèµå¼ç»å符串æ°ç»ç第ä¸ä¸ª
}
}
è¿è¡ç»æå¦ä¸ï¼
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2017-09-05
不是不能赋值,是最后
if(filenames[i].endsWith("jpg")){
System.out.println(filenames[i]);
这个时候的i=2,已经超过filenames数组的范围,所以报异常
如
import java.util.Scanner;
public class Ccc {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[] filenames = new String[2];
for (int i = 0; i < filenames.length; i++) {
System.out.println("please input the string");
String text = scanner.next();
filenames[i] = text;
}
System.out.println("output the filterfile:");
for (int i = 0; i < filenames.length; i++) {
if (filenames[i].endsWith("jpg")) {
System.out.println(filenames[i]);
}
}
}
}本回答被提问者采纳
if(filenames[i].endsWith("jpg")){
System.out.println(filenames[i]);
这个时候的i=2,已经超过filenames数组的范围,所以报异常
如
import java.util.Scanner;
public class Ccc {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[] filenames = new String[2];
for (int i = 0; i < filenames.length; i++) {
System.out.println("please input the string");
String text = scanner.next();
filenames[i] = text;
}
System.out.println("output the filterfile:");
for (int i = 0; i < filenames.length; i++) {
if (filenames[i].endsWith("jpg")) {
System.out.println(filenames[i]);
}
}
}
}本回答被提问者采纳
第2个回答 2011-04-30
import java.util.Scanner;
public class Test{
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String[] filenames=new String[2];
int i=0;
for(i=0;i<filenames.length;i++){
System.out.println("please input the string");
String text=scanner.next();
filenames[i]=text;
System.out.println("output the filterfile:");
if(filenames[i].endsWith("jpg")){
System.out.println(filenames[i]);
}
}
}
}
public class Test{
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String[] filenames=new String[2];
int i=0;
for(i=0;i<filenames.length;i++){
System.out.println("please input the string");
String text=scanner.next();
filenames[i]=text;
System.out.println("output the filterfile:");
if(filenames[i].endsWith("jpg")){
System.out.println(filenames[i]);
}
}
}
}
第3个回答 2011-05-01
把string改为stringbuffer,再试
第4个回答 2011-04-30
因为你第一个for循环后i的值已经变成了2 即i=2
而你的数组的长度是2 下标最多是1 在下面的if判断里面你直接使用filenames[i] 此时的i=2 当然错误
java.lang.ArrayIndexOutOfBoundsException: 2
而你的数组的长度是2 下标最多是1 在下面的if判断里面你直接使用filenames[i] 此时的i=2 当然错误
java.lang.ArrayIndexOutOfBoundsException: 2