A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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当作第三个元素存储进去了,哪个大神有解决办法?

2 个回复

倒序浏览
本帖最后由 黑马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把你的字符串拼接记录下来再进行存储会比较好。
回复 使用道具 举报
黑马59期学员 发表于 2017-3-30 14:52
StringBuilder sb=new StringBuilder();

                for(int j=0;i

你这个说的输出到文件这一块儿,我说的是前面,利用键盘录入给数组元素赋值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马