java中 输入字符串怎么给String数组赋值

importjava.util.Scanner;publicclassFileFilter{publicstaticvoidmain(String[]args){Scan... 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]);
}
}
}
这样做为什么不行呢
展开
 我来答
小傻

推荐于2017-10-05 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31134
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部

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赋值给字符串数组的第一个
}
}

 运行结果如下:

笑叹江雪
推荐于2017-09-05 · TA获得超过668个赞
知道小有建树答主
回答量:264
采纳率:100%
帮助的人:338万
展开全部
不是不能赋值,是最后
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]);
}
}
}

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿基米糊
2011-04-30 · 喜欢阅读,喜欢随笔,喜欢分享
阿基米糊
采纳数:52 获赞数:208

向TA提问 私信TA
展开全部
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]);
}

}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
随性亻
2011-05-01 · TA获得超过4180个赞
知道小有建树答主
回答量:4622
采纳率:84%
帮助的人:636万
展开全部
把string改为stringbuffer,再试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniapp16e43ddfde28
2011-04-30 · TA获得超过639个赞
知道小有建树答主
回答量:737
采纳率:0%
帮助的人:529万
展开全部
因为你第一个for循环后i的值已经变成了2 即i=2
而你的数组的长度是2 下标最多是1 在下面的if判断里面你直接使用filenames[i] 此时的i=2 当然错误
java.lang.ArrayIndexOutOfBoundsException: 2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式