Что такое "строковые аргументы []"? параметр в основном методе Java
885478 просмотра
14 ответа
Я только начинаю писать программы на Java. Что означает следующий код Java?
public static void main(String[] args)
Что такое
String[] args
?Когда бы вы использовали это
args
?
Исходный код и / или примеры предпочтительнее абстрактных пояснений
Автор: freddiefujiwara Источник Размещён: 12.11.2019 09:35Ответы (14)
283 плюса
В Java args
содержатся предоставленные аргументы командной строки в виде массива String
объектов.
Другими словами, если вы запустите вашу программу, как java MyProgram one two
тогда args
будет содержать ["one", "two"]
.
Если вы хотите вывести содержимое args
, вы можете просто просмотреть их, как это ...
public class ArgumentExample {
public static void main(String[] args) {
for(int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
}
Автор: Dan Lew
Размещён: 21.05.2009 01:01
107 плюса
Это для аргументов командной строки в Java.
Другими словами, если вы запускаете
MyProgram Java один два
Затем args
содержит:
[ "один два" ]
public static void main(String [] args) {
String one = args[0]; //=="one"
String two = args[1]; //=="two"
}
Причина этого заключается в том, чтобы настроить приложение для работы определенным образом или предоставить ему некоторую информацию, которая ему нужна.
Если вы новичок в Java, я настоятельно рекомендую читать через официальный Oracle, Java TM учебники .
Автор: mR_fr0g Размещён: 21.05.2009 11:1038 плюса
args
содержит аргументы командной строки, передаваемые программе Java при вызове. Например, если я вызову программу так:
$ java MyProg -f file.txt
Тогда args
будет массив, содержащий строки "-f"
и "file.txt"
.
16 плюса
Следующий ответ основан на моем понимании и некотором тесте.
Что такое String [] args?
Ans->
String [] -> Как мы знаем, это простой массив String.
args -> это имя массива, это может быть что угодно (например, a, ar, аргумент, параметр, параметр), нет проблем с компилятором и выполнено, и я также проверил.
Например,
1) public static void main (аргумент String [])
2) открытый статический void main (параметр String [])
Когда бы вы использовали эти аргументы?
Ans->
Основная функция разработана очень разумно разработчиками. Фактическое мышление очень глубоко. Который в основном разрабатывается на основе C & C ++ на основе аргумента командной строки, но в настоящее время никто не использует его больше.
Вещи 1 - Пользователь может вводить данные любого типа из командной строки. Это может быть Number или String. Необходимо, чтобы компилятор принял их, какой тип данных нам следует использовать? увидеть вещь 2
Thing 2 - String - это тип данных, который поддерживает все примитивные типы данных, такие как int, long, float, double, byte, shot, char в Java. Вы можете легко разобрать его в любом примитивном типе данных.
Например, следующая программа скомпилирована и выполнена, и я также протестировал.
Если ввод -> 1 1
// one class needs to have a main() method
public class HelloWorld
{
// arguments are passed using the text field below this editor
public static void main(String[] parameter)
{
System.out.println(parameter[0] + parameter[1]); // Output is 11
//Comment out below code in case of String
System.out.println(Integer.parseInt(parameter[0]) + Integer.parseInt(parameter[1])); //Output is 2
System.out.println(Float.parseFloat(parameter[0]) + Float.parseFloat(parameter[1])); //Output is 2.0
System.out.println(Long.parseLong(parameter[0]) + Long.parseLong(parameter[1])); //Output is 2
System.out.println(Double.parseDouble(parameter[0]) + Double.parseDouble(parameter[1])); //Output is 2.0
}
}
Автор: Ajinkya
Размещён: 30.09.2016 08:50
12 плюса
String [] args
это также, как вы объявляете массив строк в Java.
В этой сигнатуре метода массив args
будет заполнен значениями при вызове метода (как показывают другие примеры). Поскольку вы учитесь, стоит понимать, что этот args
массив такой же, как если бы вы создали его самостоятельно в методе, как в этом:
public void foo() {
String [] args = new String[2];
args[0] = "hello";
args[1] = "every";
System.out.println("Output: " + args[0] + args[1]);
// etc... the usage of 'args' here and in the main method is identical
}
Автор: Cuga
Размещён: 21.05.2009 01:16
11 плюса
Я бы расстался
public static void main(String args[])
по частям.
«public» означает, что main () может быть вызван из любого места.
«static» означает, что main () не принадлежит конкретному объекту
«void» означает, что main () не возвращает значения
«main» - это имя функции. main () является особенным, потому что это начало программы.
«Строка []» означает массив строк.
«args» - это имя String [] (в теле main ()). «args» не является особенным; Вы можете назвать это как-нибудь еще, и программа будет работать так же.
String[] args
представляет собой набор строк, разделенных пробелом, который может быть введен в программу на терминале. В большинстве случаев новичок не собирается использовать эту переменную, но она всегда есть на всякий случай.
11 плюса
Даже если OP только говорит о String[] args
, я хочу привести полный пример public static void main(String[] args)
.
Public
: модификатор доступа , который определяет, кто может получить доступ к этому методу. Открытый означает, что этот метод будет доступен любому классу (если другие классы могут получить доступ к этому классу.).
Static
: ключевое слово, которое идентифицирует предмет, связанный с классом. Это означает, что данный метод или переменная не связаны с экземпляром, а связаны с классом. Доступ к нему можно получить без создания экземпляра класса.
Void
: используется для определения типа возврата метода. Он определяет, что метод может вернуть. Void означает, что метод не будет возвращать никакого значения.
main
: это имя метода. Это имя метода ищется JVM как отправная точка для приложения только с определенной подписью.
String[] args
: параметр основного метода.
Если вы посмотрите на исходный код JDK (jdk-src \ j2se \ src \ share \ bin \ java.c):
/* Get the application's main method */
mainID = (*env)->GetStaticMethodID(env, mainClass, "main",
"([Ljava/lang/String;)V");
...
{ /* Make sure the main method is public */
...
mods = (*env)->CallIntMethod(env, obj, mid);
if ((mods & 1) == 0) { /* if (!Modifier.isPublic(mods)) ... */
message = "Main method not public.";
messageDest = JNI_TRUE;
goto leave;
...
Вы можете видеть, что метод запуска в Java должен быть назван main
и должен иметь конкретную подписьpublic static void main(String[] args)
Код также говорит нам, что public static void main(String[] args)
это не исправлено, если вы измените код в (jdk-src \ j2se \ src \ share \ bin \ java.c) на другую подпись, это будет работать, но изменение этого даст вам другие возможные проблемы из-за спецификаций Java
Оффтоп: прошло уже 7 лет с тех пор, как ОП задал этот вопрос, я думаю, что ОП уже может ответить на его собственный вопрос.
Автор: Igoranze Размещён: 15.06.2016 12:178 плюса
Когда вы закончите свой код, вы превратите его в файл с расширением .java, который можно запустить, дважды щелкнув по нему, а также по всей консоли (терминал на Mac, cmd.exe на окнах), который позволяет пользователю делать много вещей. Одна вещь - они могут видеть консольные сообщения (System.out.print или System.out.println), которые они не могут видеть, если они дважды щелкают. Еще одна вещь, которую они могут сделать, это указать параметры, поэтому обычно вы используете строку
java -jar MyCode.jar
после перехода в папку программы с
cd C:My/Code/Location
на окнах или
cd My/Code/Location
на Mac (обратите внимание, что Mac менее громоздкий) для запуска кода, но для указания параметров, которые вы бы использовали
java -jar MyCode.jar parameter1 parameter2
Эти параметры хранятся в массиве args, который вы можете использовать в своей программе, если вы хотите, чтобы пользователь мог контролировать специальные параметры, такие как используемый файл или объем памяти, который может иметь программа. Если вы хотите знать, как использовать массив, вы можете найти тему на этом сайте или просто погуглить. Обратите внимание, что можно использовать любое количество параметров.
Автор: Zac Размещён: 23.01.2014 12:507 плюса
Я думаю, что это довольно хорошо охвачено ответами выше, String args[]
это просто массив строковых аргументов, которые вы можете передать своему приложению при запуске. Для завершения я мог бы добавить, что также допустимо определять параметр метода, передаваемый main
методу, в качестве аргумента переменной (varargs) типа String:
public static void main (String... args)
Другими словами, main
метод должен принимать либо String array ( String args[]
), либо varargs ( String... args
) в качестве аргумента метода. И нет никакого волшебства с именем args
тоже. Вы также можете написать arguments
или даже freddiefujiwara
как показано ниже, например:
public static void main (String[] arguments)
public static void main (String[] freddiefujiwara)
6 плюса
Когда класс java выполняется из консоли, вызывается метод main. Чтобы это произошло, определение этого основного метода должно быть
public static void main(String [])
Тот факт, что этот массив строк называется args, является стандартным соглашением, но не является строго обязательным. Вы должны заполнить этот массив в командной строке, когда вы вызываете вашу программу
java MyClass a b c
Они обычно используются для определения параметров вашей программы, например, файлов для записи или чтения.
Автор: shsteimer Размещён: 21.05.2009 01:186 плюса
в public static void main (String args []) args - это массив аргументов консольной строки, тип данных которых - String. в этом массиве вы можете хранить различные строковые аргументы, вызывая их в командной строке, как показано ниже: java myProgram Shaan Royal, затем Shaan и Royal будут сохранены в массиве как arg [0] = "Shaan"; Arg [1] = "Royal"; Вы можете сделать это вручную также внутри программы, когда вы не вызываете их в командной строке.
Автор: Shaan Royal Размещён: 28.05.2013 02:276 плюса
Объяснение на простом непрофессиональном языке.
Основной метод ожидает от нас предоставления некоторых аргументов, когда мы направляем нашу JVM на имя класса. Это означает, что ваш файл называется Try.java, теперь для его выполнения в командной строке вы пишете «javac Try.java» для компиляции, а затем «java Try» для выполнения. Теперь предположим, что вместо написания просто «java Try» вы пишете «java Try 1». Здесь вы передали аргумент "1". Это будет принято вашим основным методом, даже если вы не используете его в своем коде.
Если вы хотите проверить, принял ли ваш метод main аргумент "1" или нет. Просто, внутри вашего основного метода введите следующее:
for(int i = 0; i < args.length; i++) {
System.out.println("Argument is: "+args[i]);
}
Автор: Jatin Lalwani
Размещён: 24.03.2016 10:07
3 плюса
Стиль dataType[] arrayRefVar
является предпочтительным. Стиль dataType arrayRefVar[]
происходит от языка C / C ++ и был принят в Java для поддержки программистов на C / C ++.
0 плюса
В дополнение ко всем предыдущим комментариям.
public static void main(String[] args)
можно записать как
public static void main(String...arg)
или же
public static void main(String...strings)
Автор: Rahul Anand
Размещён: 24.12.2018 10:23
Вопросы из категории :
- java В чем разница между int и Integer в Java и C #?
- java Как я могу определить IP моего маршрутизатора / шлюза в Java?
- java Каков наилучший способ проверки XML-файла по сравнению с XSD-файлом?
- java Как округлить результат целочисленного деления?
- java Преобразование списка <Integer> в список <String>
- parameters Передать по ссылке или передать по значению?
- parameters Как вы передаете функцию в качестве параметра в C?
- parameters Сколько аргументов конструктора слишком много?
- parameters В чем разница между аргументом и параметром?
- parameters Передача словаря в функцию в Python в качестве параметров ключевого слова
- command-line-arguments Каков наилучший способ разбора аргументов командной строки?
- command-line-arguments Пользовательский ввод и аргументы командной строки
- command-line-arguments Как мне разобрать аргументы командной строки в Java?
- command-line-arguments Использование getopts для обработки длинных и коротких параметров командной строки
- command-line-arguments Что такое "строковые аргументы []"? параметр в основном методе Java
- main Почему основной метод Java статичен?
- main Что должно возвращать main () в C и C ++?
- main Что делать, если __name__ == "__main__": делать?
- main main () в C, C ++, Java, C #