Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将一个int与if语句中的几个int进行比较_Java_String_Char_Int - Fatal编程技术网

Java 将一个int与if语句中的几个int进行比较

Java 将一个int与if语句中的几个int进行比较,java,string,char,int,Java,String,Char,Int,我试图弄清楚如何创建一个if语句,如果提供的int与输入的任何订单匹配,该语句将为true。例如,如果int为745,则使754、547或457返回true。我想把它转换成一个字符串,然后提取每个char值并添加char值,使之成为比较值。这样行吗?抱歉,如果问题是愚蠢的,我是java新手。提前谢谢 更新 我开发了一个有效的代码,除了在输入时有效,例如,647,我将其与638进行比较,因为它们都具有相同的字符值。我怎样才能解决这个问题 public int winAmount() {

我试图弄清楚如何创建一个if语句,如果提供的int与输入的任何订单匹配,该语句将为true。例如,如果int为745,则使754、547或457返回true。我想把它转换成一个字符串,然后提取每个char值并添加char值,使之成为比较值。这样行吗?抱歉,如果问题是愚蠢的,我是java新手。提前谢谢

更新

我开发了一个有效的代码,除了在输入时有效,例如,647,我将其与638进行比较,因为它们都具有相同的字符值。我怎样才能解决这个问题

public int winAmount()
{        
int prizeMoney=0;
字符串user=Integer.toString(userNumbers);
字符串winning=Integer.toString(winningNumbers);
int userValue=user.charAt(0)+user.charAt(1)+user.charAt(2);
int winningValue=winning.charAt(0)+winning.charAt(1)+winning.charAt(2);
if(betType.equalsIgnoreCase(“直接下注”))
{
if(userNumbers==winningNumbers)
prizeMoney=600*betAmount;
其他的
prizeMoney=0;
}    
其他的
{
如果(userValue==winningValue)
{
if(user.charAt(0)=user.charAt(1)| | user.charAt(0)=user.charAt(2)| | user.charAt(1)=user.charAt(2))
prizeMoney=200*betAmount;
其他的
prizeMoney=100*betAmount;
}
}    
回报优先;
}   

}
一种优雅而简单的方法是按整数的位数对其进行排序。然后用同样的方法对要比较的其他整数进行排序

因此,如果您在排序时有74442,您将有24447

然后,如果与任何其他数字(如47442)进行比较,它将是24447

最后,如果排序值相等,则仅此而已。(这将是一个简单的if语句)

下面是一个非常简单的算法,它将按数字对整数进行排序

你所要做的就是提取算法并在你自己的程序中实现它,我认为这应该是小菜一碟而且相当有效


一种优雅而简单的方法是按整数的位数对其进行排序。然后用同样的方法对要比较的其他整数进行排序

因此,如果您在排序时有74442,您将有24447

然后,如果与任何其他数字(如47442)进行比较,它将是24447

最后,如果排序值相等,则仅此而已。(这将是一个简单的if语句)

下面是一个非常简单的算法,它将按数字对整数进行排序

你所要做的就是提取算法并在你自己的程序中实现它,我认为这应该是小菜一碟而且相当有效


最简单的方法是将整数转换为字符串,并根据字典顺序对字符串进行排序。然后测试是否相等

public boolean isValid(int a, int b);   
{
    string s1 = String.valueOf(a);
    string s2 = String.valueOf(a);
    java.util.Arrays.sort(s1.toCharArray()); 
    java.util.Arrays.sort(ss.toCharArray()); 

    boolean isValid = s1.equale(s2);

    return isValid;

}

最简单的方法是将整数转换为字符串,根据字典顺序对字符串进行排序。然后测试是否相等

public boolean isValid(int a, int b);   
{
    string s1 = String.valueOf(a);
    string s2 = String.valueOf(a);
    java.util.Arrays.sort(s1.toCharArray()); 
    java.util.Arrays.sort(ss.toCharArray()); 

    boolean isValid = s1.equale(s2);

    return isValid;

}

那么,如果该int以任意顺序包含
4
7
5
的话,情况就差不多了?是的,只需更改为字符串并执行
.contains('7')&.contains(5)…
添加字符将不起作用,因为您无法区分
34
25
“会起作用吗”它会起作用,但会允许更多的值,如
835
。你想做的是:(用数字,但那是一样的)。我的意思是,
7*5*4=140
5*4*7=140
,等等。@MattClark但是,作为一个简单的反例,
7*5*2*2=140
,因此,您的方法也会将
7522
754
匹配。如果该int以任何顺序包含
4
7
5
,那么情况就差不多了?是的,只需更改为字符串并执行
.contains('7')&.contains(5)…
添加字符将不起作用,因为您无法区分
34
25
“会起作用吗”它会起作用,但会允许更多的值,如
835
。你想做的是:(用数字,但那是一样的)。我的意思是,
7*5*4=140
5*4*7=140
,等等。@MattClark但是,作为一个简单的反例,
7*5*2*2=140
,所以你的方法也会将
7522
754
匹配。