for循环中的Concat字符串 [英] Concat String in a for loop

查看:121
本文介绍了for循环中的Concat字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个程序,该程序接受用户键入的每个数字,并将它们排序为偶数,奇数和数字零值。

I'm trying to create a program that takes each number typed in by the user and sort them out as even, odd and the number zero values.

结果应该看起来像这样:

The result should look like something like this:

User Input: 14005

Output:
Even Numbers: 4
Odd Numbers: 1, 5
Zero's: 0, 0

这是我编写的代码,我考虑过使用字符串叠加法,以便在每次循环检查下一个字符时添加一个新值,不知道我是否在想对,是否适合

This is the code I've written, I thought of using string concatination in order to add a new value each time the loop checks for the next character, don't know whether I'm thinking right or not though, would appriciate if someone could tell me where I'm thinking in the wrong way.

package com.craydesign;

import javax.swing.JOptionPane;

public class Main {

    public static void main(String[] args) {
        String number = JOptionPane.showInputDialog("Please enter a number: ");
        String evenNumbers = "";
        String oddNumbers = "";
        String numberZero = "";

        for(int i = 0; i < number.length(); i++) {
            if(number.charAt(i) % 2 == 0) {
                evenNumbers.concat(Integer.toString(i) + ", ");
            } else if(number.charAt(i) % 2 != 0) {
                oddNumbers.concat(Integer.toString(i) + ", ");
            } else if (number.charAt(i) == 0){
                numberZero.concat(Integer.toString(i) + ", ");
            }
        }

        JOptionPane.showMessageDialog(null, "Even numbers: " + evenNumbers + "\n" + "Odd numbers: " + oddNumbers + "\n" + "Zero's: " + numberZero);

    }

}


推荐答案

使用 Character.getNumericValue()代替 charAt(i)

public static void main(String[] args) throws IOException
    {

          String number = JOptionPane.showInputDialog("Please enter a number: ");
          StringBuffer evenNumbers = new StringBuffer();
          StringBuffer oddNumbers =new StringBuffer();
          StringBuffer numberZero =new StringBuffer();

        for(int i = 0; i < number.length(); i++) {
          int value=Character.getNumericValue(number.charAt(i));
          if(value!=0 && value % 2 == 0) {
              evenNumbers.append(value).append(',');
          } else if(value % 2 != 0) {
              oddNumbers.append(value).append(',');
          } else if (value == 0){
              numberZero.append(value).append(',');
          }
        }

          JOptionPane.showMessageDialog(null, "Even numbers: " + evenNumbers + "\n" + "Odd numbers: " + oddNumbers + "\n" + "Zero's: " + numberZero);


      }

编辑:(显示数字

     String evenNo[]=evenNumbers.toString().split(",");
      String oddNo[]=oddNumbers.toString().split(",");

      Arrays.sort(evenNo);
      Arrays.sort(oddNo);

      JOptionPane.showMessageDialog(null, "Even numbers: " +  Arrays.toString(evenNo) + "\n" + "Odd numbers: " + Arrays.toString(oddNo) + "\n" + "Zero's: " + Arrays.toString(numberZero.toString().substring(0, 

numberZero.length()-1).split(",")));

这篇关于for循环中的Concat字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆