簡體   English   中英

Java,如何從一個數字中刪除一位數字(以便對其余數字進行計算)?

[英]Java, How do I drop one single digit from a number (In order to perform a calculation on the rest of the number)?

我試圖弄清楚Java分配的一部分,但我不知道該怎么做。 如果有人能以正確的方向幫助或指導我,我將不勝感激!

用戶必須輸入一個六位數的“票號”。 我試圖弄清楚如何刪除用戶輸入的數字的最后一位並將其放入自己的變量中。

例如:

機票號:123456

如何刪除“ 6”以使數字“ 12345”並將6放入其自己的變量中?

在將輸入轉換為字符串后,我嘗試使用\\ b退格最后一位數字,但這沒有用。 而且我已經意識到,只要有效,它只會刪除該號碼。

一旦刪除了最后一位數字,我們就必須進行計算以得到余數...我對此並不擔心,我發現書中已經描述了這一點,我只是不知道如何刪除該數字並將其放入通過它自己。

我對Java非常陌生(這是第2章的作業),所以請對我輕松一點!

感謝大家的幫助。 我很感激!

這是我想出的,代碼有效:

import javax.swing.JOptionPane;

public class TicketNumber
{
    public static void main(String[] args)
    {
        String ticketNumber;
        int Ticket, Remainder, lastDigit;

        ticketNumber = JOptionPane.showInputDialog(null, 
            "Enter the six digit ticket number",
            "Verify Ticket", JOptionPane.INFORMATION_MESSAGE);

        Ticket = Integer.parseInt(ticketNumber) / 10;
        lastDigit = Integer.parseInt(ticketNumber) % 10;
        Remainder = Ticket % 7;
        boolean Valid = lastDigit == Remainder;

        JOptionPane.showMessageDialog(null, "Valid Ticket" + "\n" + Valid);
    }
}

這取決於您使用的數據類型。 如果值為String ,則可以使用substring方法:

String ticket = "123456";
String allButLast = ticket.substring(0, ticket.length() - 1); // becomes "12345"

如果它是一個int值,你可以使用整數除法:

int ticket = 123456;
int allButLast = ticket / 10; // truncates to 12345

如果是floatdouble ,則可以除以10並轉換為int ,也可以使用Math.floor()在除以10后刪除小數部分。

編輯:根據對問題的編輯,您可以執行以下操作:

public class TicketNumber
{
    public static void main(String[] args)
    {
        String ticketNumber;
        int ticket, prefix, remainder, lastDigit;

        ticketNumber = JOptionPane.showInputDialog(null, 
            "Enter the six digit ticket number",
            "Verify Ticket", JOptionPane.INFORMATION_MESSAGE);

        ticket = Integer.parseInt(ticketNumber);
        prefix = ticket / 10;
        lastDigit = ticket % 10;
        remainder = prefix % 7;
        boolean valid = lastDigit == remainder;

        JOptionPane.showMessageDialog(null, "Valid Ticket" + "\n" + valid);
    }
}

請注意, Ticket等不是良好的Java變量名稱; 它們應以小寫字母開頭(例如, ticket )。 我在代碼版本中進行了更改。

請注意,計算可以更簡潔地寫為:

boolean valid = (ticket % 10) == ((ticket / 10) % 7);

並且您可以消除變量prefixremainderlastDigit

您可以使用模運算符%和除法運算符/

int number = 123456;
int remainder = 123456 % 10;
int newNumber = 123456 / 10;
System.out.println(newNumber); // output is 12345
System.out.println(remainder); // output is 6
 int n=123456,m=n/10;
     System.out.println("Number = "+m);//your code

您的輸出:-

Number = 12345

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM