Java 如何在实例方法中添加14个数字?

Java 如何在实例方法中添加14个数字?,java,class,instance,Java,Class,Instance,所以我在创建一个实例方法来添加两个基于14的数字时遇到了麻烦,我想知道是否有人可以帮助我?我对java有点陌生,对整个事情还是有点困惑。到目前为止,我已经有了将以14为基数的数字转换为以10为基数的代码,然后我需要添加它们并将它们转换回以14为基数的数字。我想把它们都放在一个实例类中,但我觉得放在一个实例类中太多了 这是我对客户端代码的输入类型,如下所示: PokerNum sum=num1.add(num2) import java.util.Scanner; 公共类扑克{ 串珠; int n

所以我在创建一个实例方法来添加两个基于14的数字时遇到了麻烦,我想知道是否有人可以帮助我?我对java有点陌生,对整个事情还是有点困惑。到目前为止,我已经有了将以14为基数的数字转换为以10为基数的代码,然后我需要添加它们并将它们转换回以14为基数的数字。我想把它们都放在一个实例类中,但我觉得放在一个实例类中太多了

这是我对客户端代码的输入类型,如下所示:

PokerNum sum=num1.add(num2)

import java.util.Scanner;
公共类扑克{
串珠;
int num1,num2;
public PokerNum(字符串alienNum)抛出IllegalArgumentException{
这个。alienNum=alienNum;
字符串toUpper=alienNum.toUpperCase();
对于(int i=0;i0){
整数位数=数值%14;
开关(数字){
案例10:
结果。插入(0,'A');
打破
案例11:
结果。插入(0,'J');
打破
案例12:
结果。插入(0,'Q');
打破
案例13:
结果。插入(0,'K');
打破
违约:
结果。插入(0,数字);
}
数值-=位数;
amountValue/=14;
String firstValue=result1.toString();
}
}
char[]secNum=num2.toCharArray();
int amountValue2=0;
int length=secNum.length;
for(int index=0;index0){
整数位数=数值%14;
开关(数字){
案例10:
结果。插入(0,'A');
打破
案例11:
结果。插入(0,'J');
打破
案例12:
结果。插入(0,'Q');
打破
案例13:
结果。插入(0,'K');
打破
违约:
结果。插入(0,数字);
}
amountValue2-=数字;
amountValue2/=14;
PokerNum secondValue=result.toString();
}
返回firstValue+secondValue;
/*PokerNum总和=num1+
PokerNum另一个.num2=
回报金额*/
}

感谢所有提前提供帮助的人:)

我相信您可以将其保存在一个实例中。建议使用以下函数进行转换:

Integer.parseInt(String s, int radix)
Integer.toString(int i, int radix)
javadoc表示生成的字符串将使用:

0123456789ABCDEFGHIJKLMNOPQRSTUVXYZ

所以,如果我们选择基数=14,它将有0123456789abcd

逻辑思想是将实际数字保持为
int
,并在创建和打印时从字符串转换为字符串。我们可以只保留成员变量
num1
,并删除成员变量
alienNum
num2

构造函数

您的带字符串参数的构造函数似乎做了很好的错误检查。这里我们需要的只是将字符串转换为整数,并将其存储在成员变量中。首先,我们需要将所有有效字符串从
AJQK
转换为
ABCD
。这里的示例效率很低,但可以理解:

//alienNum = alienNum.replace('A', 'A'); // no need
alienNum = alienNum.replace('J', 'B');
alienNum = alienNum.replace('Q', 'C');
alienNum = alienNum.replace('K', 'D');
然后我们可以调用解析方法:

num1 = Integer.parseInt(alienNum , 14);
通过将
num1
的值初始化为0,您的空arg构造函数已经正常

添加

加法中的方法不正确,因为它正在为加法设置当前值。这里有三个对象:
num
this
、和
other
。要将
this
添加到
other
中,并返回
num

num.num1 = this.num1 + another.num1;
输出

我假设输出是from
toString()
。在这种情况下,您需要将整数转换为字符串,然后将其转换为正确的字符

String out = Integer.toString(num1, 14).toUpper();
//alienNum = alienNum.replace('A', 'A'); // no need
alienNum = alienNum.replace('B', 'J');
alienNum = alienNum.replace('C', 'Q');
alienNum = alienNum.replace('D', 'k');

你现在可能不需要一个转换方法。

如果你的代码已经工作了,你只需要一些指针就可以重构它,然后考虑把你的问题迁移到我们的姐妹站点。
String out = Integer.toString(num1, 14).toUpper();
//alienNum = alienNum.replace('A', 'A'); // no need
alienNum = alienNum.replace('B', 'J');
alienNum = alienNum.replace('C', 'Q');
alienNum = alienNum.replace('D', 'k');