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

如图所示,一直提示异常...完全按标准写的,还是一直异常

代码.png (160.72 KB, 下载次数: 33)

代码.png

评分

参与人数 1黑马币 +2 收起 理由
z195061 + 2

查看全部评分

10 个回复

倒序浏览
666666666666
回复 使用道具 举报
s字符串中,25前有空格
回复 使用道具 举报
字符串第一个字符是空格,调用split()方法,得到字符串数组,第一个字符串是""
改进一下就可以了

aa.PNG (247.2 KB, 下载次数: 33)

aa.PNG
回复 使用道具 举报
一样犯这样的错误,  不是字符问题就是空格或者大小写问题
回复 使用道具 举报
{:3_47:}..split不就是分隔空格的吗?
回复 使用道具 举报
yxpzzl 中级黑马 2016-4-29 23:49:50
7#
EvanDevil 发表于 2016-4-29 23:38
字符串第一个字符是空格,调用split()方法,得到字符串数组,第一个字符串是""
改进一下就可以了 ...

split就是用来分隔空格的啊,为什么不可以的
回复 使用道具 举报
我也在学习中
回复 使用道具 举报
yxpzzl 发表于 2016-4-29 23:49
split就是用来分隔空格的啊,为什么不可以的

第一个空格,切出来,前面有个空串,你看切处出来的数组长度,比你的数字多了一个

QQ图片20160430000104.png (202.34 KB, 下载次数: 22)

QQ图片20160430000104.png
回复 使用道具 举报
  1. 1、我有如下一个字符串:”91 27 46 38 50”,请写代码实现最终输出结果是:”27 38 46 50 91”
  2. package com.heima.test;
  3. import java.util.Arrays;
  4. public class Test1 {
  5.         /**
  6.          * 分析:
  7.          * 1,将字符串切割成字符串数组
  8.          * 2,将字符串转换成数字并将其存储在一个等长度的int数组中
  9.          * 3,排序
  10.          * 4,将排序后的结果遍历并拼接成一个字符串
  11.          */
  12.         public static void main(String[] args) {
  13.                 String s = "91 27 46 38 50";
  14.                 //1,将字符串切割成字符串数组
  15.                 String[] sArr = s.split(" ");
  16.                 //2,将字符串转换成数字并将其存储在一个等长度的int数组中
  17.                 int[] arr = new int[sArr.length];
  18.                 for (int i = 0; i < arr.length; i++) {
  19.                         arr[i] = Integer.parseInt(sArr[i]);         //将数字字符串转换成数字
  20.                 }
  21.                
  22.                 //3,排序
  23.                 Arrays.sort(arr);
  24.                
  25.                 //4,将排序后的结果遍历并拼接成一个字符串27 38 46 50 91
  26.                 /*String str = "";
  27.                 for (int i = 0; i < arr.length; i++) {
  28.                         if(i == arr.length - 1) {
  29.                                 str = str + arr[i];                                //27 38 46 50 91
  30.                         }else {
  31.                                 str = str + arr[i] + " ";                //27 38 46 50
  32.                         }
  33.                 }
  34.                
  35.                 System.out.println(str);*/
  36.                
  37.                 StringBuilder sb = new StringBuilder();
  38.                 for (int i = 0; i < arr.length; i++) {
  39.                         if(i == arr.length - 1) {
  40.                                 sb.append(arr[i]);
  41.                         }else {
  42.                                 sb.append(arr[i] + " ");
  43.                         }
  44.                 }
  45.                
  46.                 System.out.println(sb);
  47.         }
  48. }
复制代码
            
这是原题,很明显的是数字前面都有空格的...
不知道为什么编写的时候没有了
回复 使用道具 举报
EvanDevil 发表于 2016-4-30 00:02
第一个空格,切出来,前面有个空串,你看切处出来的数组长度,比你的数字多了一个 ...

确实是多了一个空字符串,而且我在9后边加空格试了一下,没有影响了..............这个split不好掌握
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马