问题的措辞如下:
"要求用户输入一系列单个数字的数字,没有任何分隔。程序应显示字符串中的最高位和最低位。此外,程序应显示一个只包含偶数位的字符串和一个只包含奇数位的字符串。"
显然,我需要以某种方式转换输入字符串(让它称之为numberInput)或解析它的最高和最低整数,以及它内部的所有奇数和偶数整数。
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String numberInput; // The variable of the string
System.out.println("Enter any number of positive digits, not separated by anything: "); // prompt user
numberInput = scan.next(); // read in the string
int phraseLength = numberInput.length(); // get length of input string
int middleIndex = phraseLength / 2; // find the middle index of input string
String highestDigits, lowestDigits; //?? just guessing here
int max, min; //?? made variables for highest value integer and lowest value integer
}
答案 0 :(得分:0)
我认为你在这里寻找的是一个循环和text.charAt(index)
。尝试在java中查找while
/ for
循环的语法,并使用它们循环遍历字符串,将字符串中的每个char转换为int并进行比较。您可以跟踪当前min
/ max
,并在检查字符串中的每个字符时根据需要更新它们。
一个例子是
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
for (counter=0;counter<phraselength;counter++) {
int this_int = (int)numberInput.charAt(counter);
if (this_int < min) {
min = this_int;
}
if (this_int > max) {
max = this_int;
}
}
答案 1 :(得分:0)
由于这是一项明确的任务,可以通过很少的研究来解决,所以我这样展示我的投票
在Java 8
<强>代码强>:
String s = "1237827";
String[] sp = s.split("");
int max = Arrays.stream(sp)
.mapToInt(st -> Integer.parseInt(st)).max().getAsInt();
int min = Arrays.stream(sp)
.mapToInt(st -> Integer.parseInt(st)).min().getAsInt();
System.out.println("The maximum number is " + max);
System.out.println("The minmum number is " + min);
System.out.print("The even numbers list is:");
Arrays.stream(sp)
.mapToInt(st -> Integer.parseInt(st))
.filter(i -> i % 2 == 0)
.forEach(i -> System.out.print(i + " "));
System.out.println("");
System.out.print("The odd numbers list is:");
Arrays.stream(sp)
.mapToInt(st -> Integer.parseInt(st))
.filter(i -> i % 2 != 0)
.forEach(i -> System.out.print(i + " "));
IntSummaryStatistics stats = Arrays.stream(sp)
.mapToInt(st -> Integer.parseInt(st))
.summaryStatistics();
System.out.println(stats);
<强>输出强>:
The maximum number is 8
The minmum number is 1
The even numbers list is:2 8 2
The odd numbers list is:1 3 7 7
IntSummaryStatistics{count=7, sum=30, min=1, average=4.285714, max=8}