62,614
社区成员
发帖
与我相关
我的任务
分享
public class ArrayMinValue {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(true){
System.out.println("input str");
String str = sc.nextLine();
int min = calculate(str);
if(min != Integer.MAX_VALUE){
sc.close();
System.out.println("min : " + min);
break;
}
}
}
private static int calculate(String str){
int length = str.length();
String[] arr = str.split(" ");
int min = Integer.MAX_VALUE;
length = arr.length;
int tmp;
for(int i = 0; i < length; i ++){
//过滤多余空格出现的空字符串
if(arr[i].isEmpty()){
continue;
}
try{
//整数翻译失败
tmp = Integer.parseInt(arr[i]);
}catch(NumberFormatException e){
return Integer.MAX_VALUE;
}
if(tmp < min){
min = tmp;
}
}
return min;
}
}
package com.wonders;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class NumberArrayTest {
public static void main(String[] args) {
System.out.println("请输入输一串数字以不同数量的空格分割的字符串:");
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
int minNumber = printMinNumber(str);
System.out.println("最小的数字是: " + minNumber);
}
private static int printMinNumber(String str) {
//字符非空判断
if (str != null && !"".equals(str) ) {
//所有空格用,分隔或者其他符号(空格除外)
str = str.replaceAll(" ", ",");
}
//转为字符串
String[] ch = str.split(",");
//list用于将所有非空格的元素装进去
List<String> list = new ArrayList<String>();
//用于将所有数字元素装进去
List<Integer> numlist = new ArrayList<Integer>();
for (int i = 0; i < ch.length; i++) {
if (ch[i]!=null && !"".equals(ch[i])) {
list.add(ch[i]);
}
}
//判断list中是否全是数字
String regex = "^\\d+$";
for(int i=0;i<list.size() && list.size()>0;i++){
String num = list.get(i);
if (num.matches(regex)) {
numlist.add(Integer.parseInt(list.get(i)));
}
}
//对于numlist进行排序
Collections.sort(numlist);
return numlist.get(0);
}
}
我这个应该和你的有区别,就算你字符串里面含有非数字字符,我都会将非数字字符去除掉