黑马程序员技术交流社区

标题: 这个问题哪个大神来回答一下? [打印本页]

作者: 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