如何在循环中创建一个数组,然后能够在Java循环之后调用它?

时间:2014-11-21 05:27:50

标签: java arrays

我在这里写了一个代码来执行以下操作: 提示用户输入的号码数量。我们将此值称为userRequest。 因此,userRequest次我们执行以下操作:     读一个字符串。此字符串将具有以下形式:数字和字母的混合。     返回String的整数和分隔的字母。

但是在返回的代码中,我逐个字符地扫描了字符串,因此它分别打印了每个输入。但是,我的问题是如何将数字作为一个整数和字母一起打印在字符串上。 (我认为它需要数组,但是当它在循环中时我无法调用数组)



import java.util.*;
public class Program8{
  public static void main(String[] args){
    Scanner scan = new Scanner (System.in);
    int userRequest;
    int returnNum;

    System.out.print("How many numbers do you wish to enter?  ");
      while (!scan.hasNextInt()){
        System.err.print("Please try again, with digits only: ");
        scan.next();
      }//while
      userRequest = scan.nextInt();
      
      int sortingNum = 1;
      String str;
      char ch;
      str = scan.nextLine();
      for (int i = 0; i < userRequest; i++){
        System.out.print("* Please enter a string #" + sortingNum + ": ");
        str = scan.nextLine();
        System.out.println("- String #" + sortingNum++ + " = " + str);
        for (int j = 0; j < str.length(); j++){
          ch = str.charAt(j);
          if ((ch + 0) >= 48 && (ch + 0) <= 57){
            int digit = ((ch + 0) - 48);
            System.out.println(digit);
          }
        }
        System.out.println();
        for (int k = 0; k < str.length(); k++){
          if (str.toLowerCase().charAt(k) >= 'a' && str.toLowerCase().charAt(k) <= 'z')
            System.out.println(str.charAt(k));
        }    
      }//for
  
  }//main
}//Program8
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

对于号码:
添加逻辑以将变量乘以10并添加提取的数字。

对于字符串:
添加逻辑以将字符附加到stringbuilder对象。

代码:

 int finalNumber = 0;
    for (int j = 0; j < str.length(); j++){
      ch = str.charAt(j);
      if ((ch + 0) >= 48 && (ch + 0) <= 57){
        int digit = ((ch + 0) - 48);
        finalNumber = finalNumber*10 + digit;
        //System.out.println(digit);
      }
    }
    System.out.println(finalNumber);
    System.out.println();
    StringBuilder finalString = new StringBuilder();
    for (int k = 0; k < str.length(); k++){
      if (str.toLowerCase().charAt(k) >= 'a' && str.toLowerCase().charAt(k) <= 'z') {
        //System.out.println(str.charAt(k));
      finalString.append(str.charAt(k));
      }
    }
    System.out.println(finalString.toString());