黑马程序员技术交流社区
标题:
这个问题哪个大神来回答一下?
[打印本页]
作者:
cxh0307
时间:
2017-3-30 14:29
标题:
这个问题哪个大神来回答一下?
package com.heima.test;
import java.util.Scanner;
/*
创建一个Test类,在main函数中完成以下需求:
a.在根目录创建info.txt文件。
b.创建一个字符串数组,数组长度从控制台获取。
c.通过控制台输入字符串给数组中的每一个元素进行赋值。
d.将数组中的字符串按照以下格式写入到info.txt中。
格式:[1,2,3,4]
* */
public class Test2 {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
System.out.println("请指定字符数组长度");
int length = sc.nextInt();
String[] arr = new String[length];
System.out.println("请输入字符串");
int i = 0;
while(i < length){
arr[i] = sc.nextLine();
i++;
}
for(String s : arr){
System.out.println(s);
}
}
}
这个题里面,代码应该是没问题的,但是例如我在控制台输入数组长度为3,但是在控制台输入字符串给数组元素赋值的时候,输入两个元素回车就结束了,我感觉应该是nextLine()中将/r/n当作第三个元素存储进去了,哪个大神有解决办法?
作者:
黑马59期学员
时间:
2017-3-30 14:52
本帖最后由 黑马59期学员 于 2017-3-30 14:53 编辑
StringBuilder sb=new StringBuilder();
for(int j=0;i<arr.length;i++){
if(j==arr.length-1){
sb.append(arr[j]);
sb.append("]");
}else if(j==0){
sb.append("[");
sb.append(arr[0]+",");
}else{
sb.append(arr[j]+",");
}
} }
按照你的格式要求,我觉得用StringBuilder把你的字符串拼接记录下来再进行存储会比较好。
作者:
cxh0307
时间:
2017-3-30 14:55
黑马59期学员 发表于 2017-3-30 14:52
StringBuilder sb=new StringBuilder();
for(int j=0;i
你这个说的输出到文件这一块儿,我说的是前面,利用键盘录入给数组元素赋值
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2