2013-06-25 100 views
1

我對Java很陌生,我試圖看看被設置的參數是否爲空,如果是,則向它們發送消息,然後殺死腳本。雖然它看起來並沒有工作,因爲我將參數留空,而且我仍然只是不會收到我的消息,但它似乎返回false。Java - 檢查參數是否爲空或被設置?

public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){ 
    Player player = (Player) sender; 

    if(commandLabel.equalsIgnoreCase("register")){ 
     if(args[0].length() == 0){ 
      player.sendMessage(ChatColor.GOLD + "You Did Not Set A Password! (Ex: /register mysupersecretpassword)"); 
      return false; 
     } 
    } 
    return false; 

最終解決

if(args.length == 0){ 

if(args[0].length() == 0){ 
+0

你能否提供你如何調用onCommand()方法?謝謝。 –

+0

@JavaDevil它與Bukkit(一個Minecraft插件API) –

回答

5

你的問題是你的檢查ARGS長度的第0位置。

if(args[0].length() == 0){ 

必須

if(args.length == 0){ 

事實上,如果你檢查ARGS長度的0號位置,你可能會得到一個數組越界錯誤。

+0

一起使用if(args.length == 0){是我的最終答案,謝謝你一堆! –

+0

@Necro。你應該接受答案然後=)(點擊勾號) – earcam

0

考慮一下:(args.length > 0) && (args[0].equals("") == true)

恰巧從一個shell腳本,有一個空的 「$ 1」 吉姆@ U10netbook時執行:〜/工作區/ MIDI $ ./Run

#!/bin/sh 
# 
# @(#)$Id$ 
# 
# Purpose: Run MIDI-Player.jar "midiFile" 

# Run 
# Copyright (C) 2016 James Elwood Love III - All Rights Reserved 
# Permission to copy and modify is granted under the Bumpy license 
# created 20160101 
################################################################### 
build=20160101 
########################## 
jar="MIDI.jar" 
########################## 
## INFORM ################ 
clear 
echo "\t $jar" 
echo " build $build \t JimmyLandStudios.com" 
echo " Play $1" 
########################## 
## JAR ################### 
java -jar "$jar" "$1" 
########################## 
exit 0