1

配列内の2つの特定の要素を変換する方法についてネット全体を検索しましたが、その研究については非常に不運でした

package scanner;

import java.util.Scanner;

public class EmployeeInformation {

    static Scanner sc = new Scanner(System.in);

    static String[][] info = {{"09-001", "Ja Gb", "100", "10", },
                        {"09-002", "Justine", "200", "20", },
                        {"09-003", "Ja Ja", "150", "15", }};

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.print("     - MENU -\n");
        System.out.print("A. Search Record\nB. Payroll Summary\n------------------\nEnter choice: ");
        String choice = null;
        choice = sc.nextLine();


        if (choice.equalsIgnoreCase("a")) {
            System.out.print("Enter Employee #: ");
            String EmpNum = sc.nextLine();
            SearchRecord(EmpNum);
        }
        else if (choice.equalsIgnoreCase("b")){
                PayrollSummary();
            }
        else {
            System.out.print("Invalid input.");
        }
    }

    private static void SearchRecord(String employeeNumber) {
        // TODO Auto-generated method stub

        String[] matchedRow = null;
        for (int i = 0; i < info.length; i++) {
            String[] oneRow = info[i];
                if (oneRow[0].equals(employeeNumber)) {
                    matchedRow = oneRow;
                    break;
                }
        }
        System.out.print("\nEmployee #:\tEmployee Name\tRate per Hour\tTotal Hours Worked\n");

        for (int i = 0; i < matchedRow.length; i++) {

            System.out.print(matchedRow[i] + "\t\t");
        }
    }

    private static void PayrollSummary() {

        System.out.println("\nEmployee #:\tEmployee Name\tRate per Hour\tTotal Hours Worked\tGross Pay");

        int intArr[] = new int[info.length];
        int r = 0;
        while ( r < info.length) {
            int c = 0;
            while ( c <= r ) {
                if ( c == 2 ) {
                    intArr[c] = Integer.parseInt(info[r][c]);
                if ( c == 3 ) {
                    intArr[c] = Integer.parseInt(info[r][c]);
                }
                }

                c++;
            // How do I multiply index 2 and 3 of Array info and store it in info[r][4]?    
            }

            r++;
        }



    }
}

...
4

2 に答える 2

4

文字列として表される 2 つの値を乗算するには、まずそれらを解析する必要があります。

任意の文字列を解析して整数に変換したい場合は、"Justine" などの一部の文字列を解析できないことに注意してください。このような場合にスローされる NumberFormatException を処理する必要があります。

try{
    Integer myInt = Integer.parseInt(info[x][y]);
}catch(NumberFormatException e){
    // handle your exception
}
于 2012-10-25T08:43:33.557 に答える
0

あなたはこれを行うことができます

class Testing  
{  
  public static void main(String[] args)  
  {  
    System.out.println(isNumeric("123"));  
    System.out.println(isNumeric("123.45"));  
    System.out.println(isNumeric("$123"));  
    System.out.println(isNumeric("123x"));  
  }  
  public static boolean isNumeric(String str)  
  {  
    try  
    {  
      double d = Double.parseDouble(str);  
    }  
    catch(NumberFormatException nfe)  
    {  
      return false;  
    }  
    return true;  
  }  
}  

このようにして、配列を解析できます。それが NumberFormatException の場合、それは数値ではありません。

于 2012-10-25T08:44:09.883 に答える