黑马程序员技术交流社区

标题: 请教高手解决字符串转换问题 [打印本页]

作者: 李计伟    时间: 2012-10-30 23:12
标题: 请教高手解决字符串转换问题
本帖最后由 李计伟 于 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)}
}


作者: 杨千里    时间: 2012-10-30 23:26
LZ能把字体  调一下么   看着 很别扭
作者: HeiMa-黄倲江    时间: 2012-10-31 17:18
你的意思是不是 要把字符串里面的数字转成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


作者: 李计伟    时间: 2012-10-31 20:45
我的意思是输入几个数字然后求出最大数 看来没别的更简单方法只能先把这几个数字转成字符串数组然后用Integer.parseInt()转成int型数组再比较大小求出来




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