黑马程序员技术交流社区

标题: 为什遍历不出数组arr,求指教! [打印本页]

作者: 黑子    时间: 2014-6-15 15:25
标题: 为什遍历不出数组arr,求指教!
import java.util.*;
import java.io.*;;
/*
* 5、 把以下IP存入一个txt文件,编写程序把这些IP按数值大小,从小到达排序并打印出来。

        61.54.231.245
        61.54.231.9
        61.54.231.246
        61.54.231.48
        61.53.231.249

*/
public class Test5 {
         public static void main(String[] args)
    {
        String [] strArr = {"61.54.231.245",
                                        "61.54.231.9",
                                        "61.54.231.246",
                                        "61.54.231.48",
                                        "61.53.231.249"};
        //获取到每一个ip地址字符串。
        for(int x = 0;x<strArr.length;x++){
                String str = strArr[x];
                Integer[] arr = sort(toArr(str));
                for(Integer a:arr){
                        System.out.println(a);
                }
                System.out.println("hhkjhu");
        }
    }
         //将ip字符串转换成int数组。
         private static Integer[] toArr(String str){
                 String[] str1 = str.split(".");
                 Integer[] intArr = new Integer[str1.length];
                 for(int x = 0;x<str1.length;x++){
                         intArr[x] = Integer.parseInt(str1[x]);
                 }
                 return intArr;
         }
         //给Intege数组进行排序。
         private static Integer[] sort(Integer[] intArr){
                                for(int x = 0 ; x < intArr.length - 1; x++){
                                        for(int y = x+1 ; y < intArr.length ; y++){
                                                if(intArr[x] > intArr[y]){
                                                        swap(intArr,x,y);
                                                }
                                        }
                        }
                                return intArr;
         }
         //交换位置。
         private static void swap(Integer[] intArr,int x,int y){
                        int temp = intArr[x];
                        intArr[x] = intArr[y];
                        intArr[y] = temp;
                }
}
作者: y200745    时间: 2014-6-15 17:43
你的问题,其实可以遍历到,不显示的结果的原因是数组大小为0,数组为0 的原因,是 String[] str1 = str.split("\\.");这句话出错了。看看我给你的括号中的字符串,分割“.”需要这样写“\\.”楼主,看看对吧。
作者: 黑子    时间: 2014-6-15 18:02
y200745 发表于 2014-6-15 17:43
你的问题,其实可以遍历到,不显示的结果的原因是数组大小为0,数组为0 的原因,是 String[] str1 = str.sp ...

十分感谢,忽视了转义字符这一说!
作者: 提菩--空    时间: 2014-6-15 18:29
import java.util.*;
import java.io.*;;
/*
* 5、 把以下IP存入一个txt文件,编写程序把这些IP按数值大小,从小到达排序并打印出来。

        61.54.231.245
        61.54.231.9
        61.54.231.246
        61.54.231.48
        61.53.231.249

*/
public class Test5 {
         public static void main(String[] args)
    {
        String [] strArr = {"61.54.231.245",
                                        "61.54.231.9",
                                        "61.54.231.246",
                                        "61.54.231.48",
                                        "61.53.231.249"};
        //获取到每一个ip地址字符串。
        for(int x = 0;x<strArr.length;x++){
                String str = strArr[x];
                Integer[] arr = sort(toArr(str));
                for(Integer a:arr){
                        System.out.println(a);
                }
                System.out.println("hhkjhu");
        }
    }
         //将ip字符串转换成int数组。
         private static Integer[] toArr(String str){
                 String[] str1 = str.split(".");
                 Integer[] intArr = new Integer[str1.length];
                 for(int x = 0;x<str1.length;x++){
                         intArr[x] = Integer.parseInt(str1[x]);
                 }
                 return intArr;
         }
         //给Intege数组进行排序。
         private static Integer[] sort(Integer[] intArr){
                                for(int x = 0 ; x < intArr.length - 1; x++){
                                        for(int y = x+1 ; y < intArr.length ; y++){
                                                if(intArr[x] > intArr[y]){
                                                        swap(intArr,x,y);
                                                }
                                        }
                        }
                                return intArr;
         }
         //交换位置。
         private static void swap(Integer[] intArr,int x,int y){
                        int temp = intArr[x];
                        intArr[x] = intArr[y];
                        intArr[y] = temp;
                }
}
.逗点在java中有特殊含义,把String[] str1 = str.split(".");改成String[] str1 = str.split("\\.");
作者: 小熊星座    时间: 2014-6-15 18:52
学习一下
作者: gyw520gyw    时间: 2014-6-15 21:42
…………学习了
作者: 喜爱    时间: 2014-6-15 21:54
学习一下。。。。。。
作者: 闪耀.Q    时间: 2014-6-15 22:36
来学习了
作者: 武萌    时间: 2014-6-15 22:53
好强大!!!!
作者: 北极£莜蓝    时间: 2014-6-16 00:24
太高端了
作者: 马宁    时间: 2014-6-16 00:42
来学习一下
作者: HJK    时间: 2014-6-16 18:13
转移字符
作者: 饥渴ing    时间: 2014-6-16 18:44
又学习了String的split()方法.
楼主你确定你弄明白了题目的意思?
作者: 黑子    时间: 2014-6-16 21:13
饥渴ing 发表于 2014-6-16 18:44
又学习了String的split()方法.
楼主你确定你弄明白了题目的意思?

是的  我的问题在正则表达式,windows中的转义字符的表示!
作者: 黑子    时间: 2014-6-16 22:02
楼上诸君,大家相互学习,共同进步!
作者: 贺博文    时间: 2014-6-16 22:08
         学 习了




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