My code is:
Scanner sc=new Scanner(System.in);
System.out.println("Type in your order(ex.5 7 4 6 8 3 9 2 0 1 - SPACES REQUIRED): ");
String input=sc.nextLine();
for(int i=0;i<input.length(); i++) {
String[] b=input.split(" ");
if(Integer.valueOf(b[i]) < Integer.valueOf(b[i+1])) {
System.out.println("Acsending");
}
else { // When condition is false
System.out.println("Mixed");
}
}
But when my input is 1 2 3 4 5 6
, the output is: Ascending Ascending Ascending Ascending Ascending
And when my input is 1 4 2 5 2
, the output is, Ascending Mixed Ascending Mixed
How do I make the code print only if the input is mixed or ascending?
the guy who answer before me (Elliott Frisch) is PRO I have no Idea what this line does and what those :: Does
Arrays.stream(input.split("\\s+")).mapToInt(Integer::parseInt).toArray();
I'm a beginner myself, this is how i did it
public static void main(String[] args)
{
Scanner sc =new Scanner(System.in);
System.out.println("Type in your order(ex.5 7 4 6 8 3 9 2 0 1 - SPACES REQUIRED): ");
String input=sc.nextLine();
String[] b=input.split(" ");
sc.close(); //Always Close Scanner after user :)
boolean isMixed = false; // Flag
for(int i=0; i < input.length()/2; i++) //input.length() is equal to number + Spaces we don't want spaces
{
//Integer.parseInt(b[i]) converting string to Integer
if(Integer.parseInt(b[i]) < Integer.parseInt(b[i+1]))
{
isMixed = false;
}
else
{
isMixed = true;
}
}
if(isMixed)
{
System.out.println("Mixed");
} else
{
System.out.println("Ascending");
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.