我是Java的新手,我没有其他编程经验。我正在努力完成一个家庭作业问题而且我到目前为止还没有。我非常确定这个问题对于这个社区来说非常简单,但我想请求lemans条款帮助。
问题: 编写一个名为reverse的方法,它将int作为参数并返回一个int。该方法反转给定数字的数字并返回它。如果给出5433,则该方法返回3345。
使用任意值调用main中的方法,并将结果打印到屏幕上。
(到目前为止这是我的代码snippit :(我怎么做反过来说的?它可能非常简单,但显然我需要帮助)提前谢谢!)
// Exercise 2.8.3
public class BlackBelt8 {
public static void main(String[] args) {
reverse(5433);
}
public static int reverse(int x){
System.out.println(x);
return x;
}
}
更新:我处理了所有建议的解决方案。谢谢
答案 0 :(得分:12)
有两种方法可以做到这一点。我不会给你代码,但希望我会把你带到正确的方向。
您可以将整数转换为字符串并反转字符串。然后将其转回整数。如果你想这样做,我建议你看一下Integer.parseInt和String.valueOf。
这可能是更好的方法。编程语言中的整数只返回答案的商。所以当你做5/2时,它返回2. modulo返回除法的余数。所以5%2(%是模数运算符)将等于1.
注意你可以使用10的除法和模来反转整数。
正如其中一条评论所述,您只想从函数中返回结果。从反向函数中删除System.out.println并将其放在main中。所以你会这样称呼它:
public static void main(String[] args) {
System.out.println(reverse(123));
}
编辑:这是对评论的回应。
在Java中,有两种类型的数据。本机类型和对象。本机类型是int,double,float,long,byte和char。这些是不是对象的唯一类型,并且它们不存在toString。他们每个人都有一个你可以使用的对象。例如,int的对象是Integer。
其他所有内容都是对象,派生自基类Object,与object-oriented programming相关。 toString方法用于为其所调用的任何对象提供人类可读的字符串表示。
任何类都可以拥有自己的toString方法实现,该方法将返回(理想情况下)一个人类可读的字符串。
答案 1 :(得分:3)
123的反向是321 观察那个 123 = 100 * 1 + 10 * 2 + 1 * 3 和 321 = 1 * 1 + 10 * 2 + 100 * 3
你如何在1,2,3中拆分123?你如何遍历所有数字?
你熟悉循环结构吗?
你知道什么是剩余部分吗?
答案 2 :(得分:0)
您可以尝试以下类似方法。
class Value:
def __init__(self, value:Any):
self.value = value
class MyEnum(Enum):
item1 = Value(0)
item2 = Value(0)
item3 = Value(1)
@property
def val(self):
return self.value.value
assert MyEnum.item1.val == 0
assert MyEnum.item2.val == 0
assert MyEnum.item3.val == 1
答案 3 :(得分:-4)
x = Integer.parseInt(x.toString()。Reverse());