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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑子 中级黑马   /  2014-6-15 15:25  /  1656 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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;
                }
}

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

15 个回复

倒序浏览
你的问题,其实可以遍历到,不显示的结果的原因是数组大小为0,数组为0 的原因,是 String[] str1 = str.split("\\.");这句话出错了。看看我给你的括号中的字符串,分割“.”需要这样写“\\.”楼主,看看对吧。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
y200745 发表于 2014-6-15 17:43
你的问题,其实可以遍历到,不显示的结果的原因是数组大小为0,数组为0 的原因,是 String[] str1 = str.sp ...

十分感谢,忽视了转义字符这一说!
回复 使用道具 举报
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("\\.");

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
学习一下
回复 使用道具 举报
…………学习了
回复 使用道具 举报
喜爱 高级黑马 2014-6-15 21:54:03
7#
学习一下。。。。。。
回复 使用道具 举报
来学习了
回复 使用道具 举报
武萌 中级黑马 2014-6-15 22:53:27
9#
好强大!!!!
回复 使用道具 举报
太高端了
回复 使用道具 举报
来学习一下
回复 使用道具 举报
HJK 中级黑马 2014-6-16 18:13:40
12#
转移字符
回复 使用道具 举报
又学习了String的split()方法.
楼主你确定你弄明白了题目的意思?
回复 使用道具 举报
饥渴ing 发表于 2014-6-16 18:44
又学习了String的split()方法.
楼主你确定你弄明白了题目的意思?

是的  我的问题在正则表达式,windows中的转义字符的表示!
回复 使用道具 举报
楼上诸君,大家相互学习,共同进步!
回复 使用道具 举报
         学 习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马