我自己写了这个方法我想知道是否有更好的方法来做到这一点?
public Card[] shuffle(){
for(int i = 0; i < Deck.length; i++){
int x = i + (int) (Math.random() * (32 - i));
Card temp = Deck[i];
Deck[i] = Deck[x];
Deck[x] = temp;
}
return Deck;
}
Run Code Online (Sandbox Code Playgroud) 例1:
System.out.print("Enter an integer: ");
int x = input.nextInt();
if(x < value) { }
Run Code Online (Sandbox Code Playgroud)
例2:
System.out.print("Enter an integer: ");
if(input.nextInt() < value) { }
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
如果您只需要特定条件下的值,哪一个更好用?或者两种语法在内存方面都相同?
在内存方面,第二个例子中输入的值是怎么回事?
请详细说明我的答案.
使用try(Scanner scan = new Scanner(System.in)) { }导致
线程“main”中的异常 java.util.NoSuchElementException
当我尝试调试时,它说
变量信息不可用,源代码编译时没有 -g 选项。
并显示以下代码
public Scanner(InputStream source) {
this(new InputStreamReader(source), WHITESPACE_PATTERN);
}
Run Code Online (Sandbox Code Playgroud)
我使用这一行的方法之一:
protected String loginName(){
String username;
String password;
try (Scanner scan = new Scanner(System.in)) { // This line is causing the error.
System.out.print("Enter Username: ");
username = scan.next();
System.out.print("Enter Password: ");
password = scan.next();
}
if(getUsernamesList().contains(username))
if(password.equals(getPasswordsList().get(getUsernamesList().indexOf(username)))) return username;
else return "-1";
else return "-1";
}
Run Code Online (Sandbox Code Playgroud) 这是我的 main
char* name = GetString();
if(name != NULL)
{
for(int i = 0, j = strlen(name); i < j; i++)
{
if(!isalpha(name[i-1]) && isalpha(name[i]))
printf("%c", toupper(name[i]));
}
printf("\n");
}
Run Code Online (Sandbox Code Playgroud)
该计划效果很好; 它通过了所有(check50)测试.
但我担心一个可能的错误,那就是i = 0,存储的值是否可能name[-1]是一个字母字符?
注意:该GetString()函数返回用户输入的字符串.