黑马程序员技术交流社区

标题: 大神在哪里...这个问题实在找不到 [打印本页]

作者: yxpzzl    时间: 2016-4-29 22:47
标题: 大神在哪里...这个问题实在找不到
如图所示,一直提示异常...完全按标准写的,还是一直异常

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

代码.png

作者: z195061    时间: 2016-4-29 23:19
666666666666
作者: tylw123    时间: 2016-4-29 23:31
s字符串中,25前有空格
作者: EvanDevil    时间: 2016-4-29 23:38
字符串第一个字符是空格,调用split()方法,得到字符串数组,第一个字符串是""
改进一下就可以了

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

aa.PNG

作者: z736886202    时间: 2016-4-29 23:47
一样犯这样的错误,  不是字符问题就是空格或者大小写问题
作者: yxpzzl    时间: 2016-4-29 23:48
{:3_47:}..split不就是分隔空格的吗?
作者: yxpzzl    时间: 2016-4-29 23:49
EvanDevil 发表于 2016-4-29 23:38
字符串第一个字符是空格,调用split()方法,得到字符串数组,第一个字符串是""
改进一下就可以了 ...

split就是用来分隔空格的啊,为什么不可以的
作者: zhaokai123456    时间: 2016-4-29 23:50
我也在学习中
作者: EvanDevil    时间: 2016-4-30 00:02
yxpzzl 发表于 2016-4-29 23:49
split就是用来分隔空格的啊,为什么不可以的

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

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

QQ图片20160430000104.png

作者: yxpzzl    时间: 2016-4-30 00:03
  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. }
复制代码
            
这是原题,很明显的是数字前面都有空格的...
不知道为什么编写的时候没有了
作者: yxpzzl    时间: 2016-4-30 00:10
EvanDevil 发表于 2016-4-30 00:02
第一个空格,切出来,前面有个空串,你看切处出来的数组长度,比你的数字多了一个 ...

确实是多了一个空字符串,而且我在9后边加空格试了一下,没有影响了..............这个split不好掌握




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2