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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李计伟 中级黑马   /  2012-10-30 23:12  /  1570 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李计伟 于 2012-10-31 21:24 编辑

问题:输入一个数字组成的数组,输出该数组的最大值。
   怎么把字符串数组转成整型数组,我是用String类的split( )方法切割字符串成字符串数组然后用Integer.parseInt()把字符串数组里的每个元素转成整型。有没有更简单的方法?请教更简单的方法。
   这是我的代码
import java.util.Scanner;
public class Test5 {
//求出最大值
public static String getMax(String[] arr) {   
     String max = arr[0];                                                                     
     for(int i = 1;i < arr.length;i++) {
         if(Integer.parseInt(arr
) > Integer.parseInt(max) ) {           
                         max = arr
;
          }
     }      
              return max;
}
//实现输出数组
public static void printArray(String[] arr) {   
   /...省略
}
public static void main(String[] args) {
  System.out.println("请输入几个整数以空格隔开");
  Scanner i = new Scanner(System.in);      
  String y = i.nextLine();            
  //把字符串用空格分割成数组
  String[] arr = y.split(" ");           
  printArray(arr);
  System.out.print("最大值为"+Test5.getMax(arr)}
}

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
LZ能把字体  调一下么   看着 很别扭
回复 使用道具 举报
你的意思是不是 要把字符串里面的数字转成Int类型 拿出来阿.
例如 abc3ed.  把3给转成int 拿出来??
如果是这意思的话,
这个操作需要两步,第一步用正则表达式找出其中的数字,第二步再从String转到int。
String中有个方法replaceAll(String regex, String replacement)    ,具体到你现在的需要就是用空(“”)将字符串中的非数字的表达式全部替换掉,这样就留下了数字串,然后用int的包装类的方法转换

public class Test_01 {

public static void toInt (String args) {
  int length = args.length();
  byte b;
  for (int i = 0; i < length; i++) {
   b = (byte)(args.charAt(i) - '0');
   if (b < 10)
    System.out.println(b);
  }
}

public static void main(String[] args) {
        toInt("abd3av");
}

}

输出:3

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
我的意思是输入几个数字然后求出最大数 看来没别的更简单方法只能先把这几个数字转成字符串数组然后用Integer.parseInt()转成int型数组再比较大小求出来
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马