
正文
简单的银行卡Java代码 简单的银行卡java代码怎么写
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Java如何实现区分国内和国外的银行卡
实现思路:可以根据国内卡和国外卡的标示位来区分,如国内的是以62或者88开头,之后走相应的判断分支,否则走其他的分支。
可以通过字符串的startsWith方法来进行判断,举例:
String
str
=
"62222555555582222";
if(str.startsWith("62")||str.startsWith("88")){
System.out.println("中国的卡");
}else
{
System.out.println("国外的卡");
}
输出结果:中国的卡。
备注:以上代码就是个简单的实现思路,银行卡是由”发卡行标识代码
+
自定义
+
校验码
“等部分组成的,这个只能更加实际情况来逐步完善if判断的条件。
相关问答
Q1: java定义一个银行卡类(BankCard)以及派生类ForeignCard,LimitedCard,成员包括姓名,卡
abstract class BankCard {
protected String name;
protected String cardNo;
protected double money;
public BankCard(String name, String cardNo, double money) {
super();
this.name = name;
this.cardNo = cardNo;
this.money = money;
}
public String getName() {
return name;
}
public String getCardNo() {
return cardNo;
}
public double getMoney() {
return money;
}
public abstract void unputMoney(int someMoney);
public void putMoney(int someMoney) {
this.money += someMoney;
}
}
class ForeignCard extends BankCard {
public ForeignCard(String name, String cardNo, double money) {
super(name, cardNo, money);
}
@Override
public void unputMoney(int someMoney) {
double left = getMoney() - someMoney * 1.01;
if(left = 0) {
super.money = left;
} else {
throw new RuntimeException("余额不足");
}
}
}
class LimitedCard extends BankCard {
public LimitedCard(String name, String cardNo, double money) {
super(name, cardNo, money);
}
@Override
public void unputMoney(int someMoney) {
if(someMoney 1000) {
throw new RuntimeException("取款不能超过1000");
}
if(getMoney() someMoney) {
throw new RuntimeException("余额不足");
}
super.money -= someMoney;
}
}
Q2: 求Java代码 模拟简易atm机
参考了别人的代码。略作修改,已经很简单了:
InfoATM.java:
public class InfoATM {
double money = 0;
public InfoATM(double cash) {
super();
this.money = cash;
}
// 存款的方法
public void save(double count) {
money += count;
}
// 取款的方法
public void draw(double count) {
money -= count;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
}
TestATM.java:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class TestATM extends JFrame {
private static final long serialVersionUID = 2531222181184935595L;
// 主面板pnBasic是用来装pnDate和标签文字的。
private JPanel pnBasic;
// 添加到主面板中的中间 pnDate面板是为了装表单的。
private JPanel pnDate;
// 添加到主面板中的北边 pnLabel面板是为了装欢迎词的
private JPanel pnLabel;
InfoATM atm = new InfoATM(0);
public TestATM() {
pnBasic = new JPanel();
// 主面板pnBasic是用来装pnDate和标签文字的。
pnDate = new JPanel(new GridLayout(2, 2));
// pnDate面板是为了装表单的。
pnLabel = new JPanel();
JLabel top = new JLabel("欢迎来到中国银行!");
pnLabel.add(top);
// 先将数值添加在一个容器中并设置其在容器的右边,在将容器添加在网格的第一格
JPanel jp1 = new JPanel();
JLabel number = new JLabel("数值:");
final JTextField box = new JTextField(5);
jp1.add(number);
jp1.add(box);
JPanel jp2 = new JPanel();
JButton create = new JButton("新建银行账户");
jp2.add(create);
JButton take = new JButton("取款");
JButton in = new JButton("存款");
pnDate.add(jp1);
pnDate.add(jp2);
pnDate.add(take);
pnDate.add(in);
// 加一句下面的就好了
JPanel jpS = new JPanel();
final JLabel total = new JLabel("您现在的账户余额是:0 元");
jpS.add(total);
pnBasic.setLayout(new BorderLayout());
pnBasic.add(pnLabel, BorderLayout.NORTH);
pnBasic.add(pnDate, BorderLayout.CENTER);
pnBasic.add(jpS, BorderLayout.SOUTH);
setContentPane(pnBasic);
setBounds(400, 250, 500, 500);
pack();
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setVisible(true);
pack();
in.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (box.getText() != null box.getText() != "") {
try {
double count = Double.parseDouble(box.getText());
if (count 0) {
atm.save(count);
total.setText("您现在的账户余额是:" + atm.getMoney() + "元");
box.setText("");
}
} catch (Exception e1) {
System.out.println("您输入的数值必须是数字");
}
}
}
});
take.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (box.getText() != null box.getText() != "") {
try {
double count = Double.parseDouble(box.getText());
if (count = 0 count = atm.getMoney()) {
atm.draw(count);
total.setText("您现在的账户余额是:" + atm.getMoney() + "元");
box.setText("");
} else {
System.out.println("你的余额不足,取款失败");
}
} catch (Exception e1) {
System.out.println("您输入的数值必须是数字");
}
}
}
});
create.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
total.setText("您现在的账户余额是:0元");
atm.setMoney(0);
box.setText("");
}
});
}
public static void main(String[] args) {
new TestATM();
}
}
Q3: java控制台输入银行卡是卡号随机数怎么弄啊,求代码,没有思路,谢谢高手。
这个很简单,用Java的Math.Random函数。
因为你要控制9位数字,并且第一位不是0,所以随机数就是100000000~999999999之间产生。
而Math.Random函数产生的随机数范围是[0,1), 所以用一个函数就可以产生了:
String bankaccount = String.valueOf(Math.round(Math.random()*900000000+100000000));
这里注意一点:
1. 后面加多少(比方说+100),就说明随机数从哪个开始取
2. 那个乘数是最大的要达到的数值(当然你要加上基数,就是+100的值)。
3. 因为随机数区间是[0,1), 所以1是达不到的,所以应该*900000000, 而不是*899999999.
Q4: java编写银行卡:包含属性卡号,密码和余额,要求卡号不能修改,密码修改需要提供?
提倡独立完成作业,培养独立思考能力。
思路:可以新建一个银行卡类BankCard,内部属性包含一个私有的不可变常量卡号cardNo,私有的可变量密码password,私有的可变量余额cardBalance。
参考代码如下:(仅供参考)
关于简单的银行卡Java代码和简单的银行卡java代码怎么写的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







