我试图在Java中反转一个int数组.
此方法不会反转数组.
for(int i = 0; i < validData.length; i++)
{
int temp = validData[i];
validData[i] = validData[validData.length - i - 1];
validData[validData.length - i - 1] = temp;
}
Run Code Online (Sandbox Code Playgroud)
这有什么问题?
我正在尝试确定ac#ulong数字中的位数,我试图使用一些数学逻辑而不是使用ToString().长度.我没有对这两种方法进行基准测试,但已经看到有关使用System.Math.Floor(System.Math.Log10(number))+ 1来确定位数的其他帖子.似乎工作正常,直到我从999999999999997过渡到999999999999998,此时,我开始得到一个不正确的计数.
有没有人遇到过这个问题?
我看过类似帖子的Java重点@ 为什么log(1000)/ log(10)与log10(1000)不一样?还有一个帖子@ 如何获取一个int数字的单独数字?这表明我如何使用%运算符实现相同的功能,但代码更多
这是我用来模拟这个的代码
Action<ulong> displayInfo = number =>
Console.WriteLine("{0,-20} {1,-20} {2,-20} {3,-20} {4,-20}",
number,
number.ToString().Length,
System.Math.Log10(number),
System.Math.Floor(System.Math.Log10(number)),
System.Math.Floor(System.Math.Log10(number)) + 1);
Array.ForEach(new ulong[] {
9U,
99U,
999U,
9999U,
99999U,
999999U,
9999999U,
99999999U,
999999999U,
9999999999U,
99999999999U,
999999999999U,
9999999999999U,
99999999999999U,
999999999999999U,
9999999999999999U,
99999999999999999U,
999999999999999999U,
9999999999999999999U}, displayInfo);
Array.ForEach(new ulong[] {
1U,
19U,
199U,
1999U,
19999U,
199999U,
1999999U,
19999999U,
199999999U,
1999999999U,
19999999999U,
199999999999U,
1999999999999U,
19999999999999U,
199999999999999U,
1999999999999999U,
19999999999999999U,
199999999999999999U,
1999999999999999999U
}, displayInfo);
Run Code Online (Sandbox Code Playgroud)
提前致谢
拍
我很难找到解决这个问题的方法.我正在尝试用Java开发一个带有数字的程序,例如321,并找到数字的总和,在这种情况下3 + 2 + 1 = 6.我需要任何三位数字的所有数字将它们加在一起,并使用%余数符号存储该值.这让我感到困惑,我会感激任何人的想法.
我发现这个帖子和其中一个用户发布了以下代码行:
String[] digits2 = number.split("(?<=.)");
Run Code Online (Sandbox Code Playgroud)
我已经咨询过几个来源 - 比如1和2 - 来破译这段代码的意思,但我无法弄明白.任何人都能解释split()方法中的参数意味着什么吗?
编辑:对于任何与我有相同问题的人,这是另一个有用的链接
在Java中,必须写:
Pair<String, String> pair = new Pair<String, String>("one", "two");
Run Code Online (Sandbox Code Playgroud)
如果为你推断出这些类型会很好,所以你至少可以这样做:
Pair<String, String> pair = new Pair("one", "two");
Run Code Online (Sandbox Code Playgroud)
并再次跳过通用参数.
你可以创建一个静态的方法,可以像这样作弊:
public static <T, S> Pair<T, S> new_(T one, S two) {
return new Pair<T, S>(one, two);
}
Run Code Online (Sandbox Code Playgroud)
然后用它喜欢:Pair.new_("one", "two").
是否可以在构造函数中构建类型推理,以便可以避免hack?
我想的是:
public <S,T> Pair(S one, T two) {
this.one = one;
this.two = two;
}
Run Code Online (Sandbox Code Playgroud)
但是你会遇到泛型冲突.有人有想法吗?
在一次采访中,我被要求实现toString()将数字转换为字符串。
toString()
n => s
123 => "123"
除了:
123+"" toString()函数
(123).toString()String(123)javascript 中还能怎样toString()实现呢?
当我需要从数字本身的各个数字计算一个支票号码/数字时,我偶然发现了这个挑战.
例如,我有数字(Int32)423594340,我想要一个整数集合4,2,3,5,9,4,3,0.
我认为最好不要因为性能而将给定int转换为a String.
但你怎么做呢?
我想通过if语句检查结束号。
例如
if (number ends in 1)
tNumber.setText("1");
Run Code Online (Sandbox Code Playgroud)
目前,我的代码可以运行,但是它很大,需要花很多时间,当我为更大的数字构建更大的代码时,会很费时间。
到目前为止,这是我的代码:
{
timer2 = new Timer(100, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int newNumber = (int) (Math.random() * 10);
tNumber4.setText("" + newNumber);
index2++;
if (index2 >= 10 ) {
((Timer) e.getSource()).stop();
String s = tTo.getText();
String t = tFrom.getText();
int x = Integer.parseInt(t);
int d = Integer.parseInt(s);
int newNumber2 = (int) (Math.random() * (d + 1 - x) + x);
if (newNumber2 == 10 || newNumber2 == 20 …Run Code Online (Sandbox Code Playgroud) 我需要编写一个名为 的布尔方法hasEight(),该方法将 aint作为输入,如果数字包含数字 8(例如 18、808),则返回 true。
我不想使用“字符串转换方法”。
我试过下面的代码,但只检查最后一位数字。
import java.util.Scanner;
public class Verificare {
public static boolean hasEight(int numarVerificat) {
int rest = numarVerificat % 10;
return rest == 8;
}
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Introduceti numarul pentru verificare: ");
int numar = keyboard.nextInt();
Verificare.hasEight(numar);
System.out.println("Afirmatia este: " + Verificare.hasEight(numar));
keyboard.close();
}
}
Run Code Online (Sandbox Code Playgroud)