有没有更好的方法来编写此代码,所以时间不长?
if(input.equals("1") || input.equals("2") || input.equals("3")
|| input.equals ("4") || input.equals("5") || input.equals("6")
|| input.equals("7") || input.equals("8") || input.equals("9")) {
//some code
}
答案 0 :(得分:5)
由于要测试的数字范围是1到9,因此可以使用正则表达式。喜欢,
def nice_method_name_here(sr):
return sr[sr > 0][0] == np.max(sr)
print(df.apply(nice_method_name_here))
答案 1 :(得分:2)
您没有在示例代码中包含“ 0”,但我想您希望将其包括在内。最可读和直接的方法是
void FixedUpdate()
{
if (Input.touchCount > 0)
{
RaycastHit2D hitInformation = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position),Camera.main.transform.forward);
if (hitInformation.collider.gameObject.tag == "RocketPrefab")
{
Vector3 touchPosition = Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position);
touchPosition.z = -4;
hitInformation.collider.gameObject.transform.position = touchPosition;
Debug.Log(touchPosition);
}
}
}
但是您也可以这样:
if (input.length == 1 && Character.isDigit(input[0]))
{
//...
}
答案 2 :(得分:1)
除了@Elliott Frisch的优雅回答外,以下内容也将达到目的:
A。
if(input.length() == 1 && Character.isDigit(input.charAt(0)) && input.charAt(0) != '0') {
// ...
}
B。
if(input.length() == 1 && Character.isDigit(input.charAt(0)) && input.charAt(0) != 48) {
// ...
}
C。
try {
if (Integer.parseInt(input) > 0 && Integer.parseInt(input) < 10) {
// ...
}
} catch (NumberFormatException e) {
// ...
}
答案 3 :(得分:-1)
使用input.matches("\\d")
之类的正则表达式“ \ d”。
这是Java中的代码,它告诉您给定的数字是否为一位数字。
public static void main (String[] args)
{
String input = "1";
System.out.println(input.matches("\\d"));
}