Java 只有偶数和奇数的字符串

Java 只有偶数和奇数的字符串,java,string,for-loop,if-statement,methods,Java,String,For Loop,If Statement,Methods,我知道已经有一些问题问了一些类似于我的问题,但尽管读了这些问题,它们并没有完全满足我的要求。 我正在创建一个代码,该代码接受用户输入的0-100(包括)之间的数字。无论数字是什么,它都会打印出该数字和该数字之前的所有数字 例:用户输入=25 输出=012345678910111213141516171819202122232425 我让那部分工作。现在我应该使用这个字符串并创建两个新字符串,一个只用于奇数,另一个用于偶数 例:用户输入=25 输出:奇数:135791113151719212325

我知道已经有一些问题问了一些类似于我的问题,但尽管读了这些问题,它们并没有完全满足我的要求。 我正在创建一个代码,该代码接受用户输入的0-100(包括)之间的数字。无论数字是什么,它都会打印出该数字和该数字之前的所有数字

例:用户输入=25 输出=012345678910111213141516171819202122232425

我让那部分工作。现在我应该使用这个字符串并创建两个新字符串,一个只用于奇数,另一个用于偶数

例:用户输入=25 输出:奇数:135791113151719212325和偶数=024681012141618202224

以下是我目前的代码:

import java.util.Scanner;

public class OddAndEven{
public String quantityToString() {
  Scanner number = new Scanner(System.in);
  int n = number.nextInt();
  String allNums = "";
  if ((n >= 0) && (n <= 100)) {
     for (int i = 0;i <= n; ++i)
     allNums = allNums + i;

     return allNums;
  }
  else {
     return "";
  }


}

  public void oddAndEvenNumbers(int num) {//Start of second method

     String allNums = ""; //String that quantityToString returns
     String odd = "";
     String even = "";

     if ((num >= 0) && (num < 10)) { //Looks at only single digit numbers
        for (int i = 0; i <= allNums.length(); i++) {
           if (Integer.parseInt(allNums.charAt(i))%2 == 0) { //trying to get the allNums string to be broken into individual numbers to evaluate
           even = even + allNums.charAt(i); //adding the even numbers of the string
           }
           else {
              odd = odd + allNums.charAt(i);
           }
        }
     }
     else { //supposed to handle numbers with double digits
        for (int i = 10; i <= allNums.length(); i = i + 2) {
           if (Integer.parseInt(allNums.charAt(i))%2 == 0) {
              even = even + allNums.charAt(i);
           }
           else {
              odd = odd + allNums.charAt(i);
           }
        }
     }
  System.out.println("Odd Numbers: " + odd);
  System.out.println("Even Numbers: " + even);

       }
public static void main(String[] args) {

System.out.println(new OddAndEven().quantityToString());
//System.out.println(new OddAndEven().oddAndEvenNumbers(allNums));
   //Testing     

  OddAndEven obj = new OddAndEven();
  System.out.println("Testing n = 5");
  obj.oddAndEvenNumbers(5);
  System.out.println("Testing n = 99");
  obj.oddAndEvenNumbers(99);
import java.util.Scanner;
公开课{
公共字符串quantityToString(){
扫描仪编号=新扫描仪(System.in);
int n=number.nextInt();
字符串allNums=“”;

如果((n>=0)&(n我想你可以这样做:

    int x = 20;
    StringBuilder evenNumberStringBuilder = new StringBuilder();
    StringBuilder oddNumberStringBuilder = new StringBuilder();
    for(int i =0 ; i<x+1; i++){
        if(i % 2 == 0)evenNumberStringBuilder.append(i);
        else oddNumberStringBuilder.append(i);
    }

    System.out.println(evenNumberStringBuilder);
    System.out.println(oddNumberStringBuilder);

我认为你可以这样做:

    int x = 20;
    StringBuilder evenNumberStringBuilder = new StringBuilder();
    StringBuilder oddNumberStringBuilder = new StringBuilder();
    for(int i =0 ; i<x+1; i++){
        if(i % 2 == 0)evenNumberStringBuilder.append(i);
        else oddNumberStringBuilder.append(i);
    }

    System.out.println(evenNumberStringBuilder);
    System.out.println(oddNumberStringBuilder);

您已经将输入作为整数,因此不要使用字符串

    Scanner number = new Scanner(System.in);

    System.out.print("Even Numbers: ");
    for (int i = 0; i <= number; i=i+2) {
     System.out.print(i);
    }

    System.out.println("");

    System.out.print("Odd Numbers: ");
    for (int i = 1; i <= number; i=i+2) {
     System.out.print(i);
    }
Scanner number=新的扫描仪(System.in);
系统输出打印(“偶数:”);

对于(inti=0;i您已经将输入作为整数,因此不要使用字符串

    Scanner number = new Scanner(System.in);

    System.out.print("Even Numbers: ");
    for (int i = 0; i <= number; i=i+2) {
     System.out.print(i);
    }

    System.out.println("");

    System.out.print("Odd Numbers: ");
    for (int i = 1; i <= number; i=i+2) {
     System.out.print(i);
    }
Scanner number=新的扫描仪(System.in);
系统输出打印(“偶数:”);

对于(int i=0;i您可以在将数字存储在allnumbers字符串中时简单地计算数字,下面是一个运行代码:

    int x = 23; //user input
    String s=""; //contains all numbers from 0 to userinput
    String odd =""; //contains all odd numbers from 0 to userinput
    String even = ""; //contains all even numbers from 0 to userinput

    for(int i = 0 ; i< x+1 ; i++){
    s += i;
        if(i%2==0) //if i is an even number
            even += i;
        else //if i is an odd number 
            odd += i;
    }

    System.out.println(s); //displaying all numbers from 0 to user input
    System.out.println(odd); //displaying odd numbers from 0 to user input
    System.out.println(even); //displaying even numbers from 0 to user input
int x=23;//用户输入
字符串s=”“;//包含从0到userinput的所有数字
字符串odd=”“;//包含从0到userinput的所有奇数
字符串even=”“;//包含从0到userinput的所有偶数
对于(int i=0;i
您可以在将数字存储在allnumbers字符串中时简单地计算数字,下面是一个运行代码:

    int x = 23; //user input
    String s=""; //contains all numbers from 0 to userinput
    String odd =""; //contains all odd numbers from 0 to userinput
    String even = ""; //contains all even numbers from 0 to userinput

    for(int i = 0 ; i< x+1 ; i++){
    s += i;
        if(i%2==0) //if i is an even number
            even += i;
        else //if i is an odd number 
            odd += i;
    }

    System.out.println(s); //displaying all numbers from 0 to user input
    System.out.println(odd); //displaying odd numbers from 0 to user input
    System.out.println(even); //displaying even numbers from 0 to user input
int x=23;//用户输入
字符串s=”“;//包含从0到userinput的所有数字
字符串odd=”“;//包含从0到userinput的所有奇数
字符串even=”“;//包含从0到userinput的所有偶数
对于(int i=0;i
您是否将此代码复制到了某个地方?因为要求不同,并且
oddandenumbers
中的代码也不同。您的意思是什么?我从工作中复制了此代码,最后的代码是为了测试单个方法您是否将此代码复制到了某个地方?因为要求不同,并且
odd中的代码也不同和vennumbers不同你是什么意思?我从我的工作中复制了这段代码,最后的代码是测试单个方法StringBuilder和常规字符串之间的区别是什么?StringBuilder在连接方面要快得多。我做了快速测试,输入
10000
StringBuilder在2毫秒,字符串长度超过160毫秒。对于1000000,StringBuilder需要12毫秒,而StringBuilder需要3秒以上。您可以看到细微的区别。感谢您的解释。我将在以后决定使用字符串与StringBuilder时进一步研究它们。StringBuilder与常规字符串之间的区别是什么?StringBuilder的速度要快得多连接。我做了快速测试,输入
10000
StringBuilder需要2ms,输入字符串需要160ms。输入1000000,输入StringBuilder需要12ms,输入字符串需要3s。你可以看到细微的差别。谢谢你的解释。我将在以后决定使用字符串与StringBuilder时进一步研究。如何使用字符串来吧,你不需要做两个循环来处理一位数和两位数的数字吗?@user85352从0到userinput的数字在被合并到各自的字符串之前进行了计算。没问题,朋友!为什么你不需要做两个循环来处理一位数和两位数的数字呢?@user85352从0到userinput的数字to userinput在合并到各自的字符串之前进行了评估。没问题,朋友!