学习笔记:java的字符串数组String[] args
在Java中,String[] args 是main方法的参数,用于从命令行接收输入参数。这是Java程序接收外部输入的标准方式,下面详细解释其作用和用法。
1. 基本概念
main方法的签名:Java程序的入口点是public static void main(String[] args)。String[] args的含义:- 它是一个字符串数组,用于存储命令行传递给程序的参数。
- 每个参数以字符串形式存储,数组长度由参数个数决定。
2. 命令行传参示例
假设你有一个简单的Java程序:
public class Main {
public static void main(String[] args) {
System.out.println("参数个数:" + args.length);
for (int i = 0; i < args.length; i++) {
System.out.println("参数 " + (i + 1) + ": " + args[i]);
}
}
}
编译和运行:
# 编译
javac Main.java
# 运行并传递参数
java Main apple banana "hello world"
输出结果:
参数个数:3
参数 1: apple
参数 2: banana
参数 3: hello world
3. 参数传递规则
多个参数用空格分隔:
- 例如
java Main a b c会传递3个参数:["a", "b", "c"]。
- 例如
含空格的参数需用引号包裹:
- 例如
java Main "hello world"会传递1个参数:["hello world"]。
- 例如
参数类型转换:
args中的元素始终是字符串,如需其他类型(如整数),需手动转换:int num = Integer.parseInt(args[0]);
参数可为空:
- 如果不传递参数,
args是一个长度为0的空数组(args.length == 0),不会引发NullPointerException。
- 如果不传递参数,
4. 注意事项
避免数组越界:
- 使用
args前需检查长度,例如:if (args.length > 0) {
System.out.println(args[0]);
}
- 使用
IDE中的参数设置:
- 在IDE(如IntelliJ IDEA、Eclipse)中运行时,需手动配置程序参数:
- IntelliJ:
Run→Edit Configurations→Program arguments。 - Eclipse:
Run Configurations→Arguments。
- IntelliJ:
- 在IDE(如IntelliJ IDEA、Eclipse)中运行时,需手动配置程序参数:
总结
String[] args是Java程序接收命令行参数的标准方式。- 参数以字符串数组形式传递,需注意类型转换和边界检查。
- 适用于简单配置、文件路径传递等场景,复杂场景建议使用专业库。
学习笔记:java的字符串数组String[] args的更多相关文章
- Java学习笔记之---方法和数组
Java学习笔记之---方法与数组 (一)方法 (1)什么是方法? 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 (2)方法的优点 使程序变得更简短而 ...
- python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...
- Java基础-字符串(String)常用方法
Java基础-字符串(String)常用方法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.java的API概念 Java的API(API:Application(应用) Pr ...
- JavaSE学习笔记(7)---数组
JavaSE学习笔记(7)---数组 1.什么是数组 数组是相同类型数据的有序集合.数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成.其中,每一个数据称作一个元素,每个元素可以通过一个 ...
- Java 中将字符串数组转换为字符串
Java 中将字符串数组转换为字符串 import java.util.Arrays; import java.util.HashSet; import java.util.Set; public c ...
- [java学习笔记]java语言核心----面向对象之this关键字
一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理: 代表的是当前对象. this就是所在函数 ...
- [java学习笔记]java语言核心----面向对象之构造函数
1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用: 给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...
- matlab学习笔记(一)单元数组
matlab学习笔记(一)单元数组 1.floor(x) :取最小的整数 floor(3.18)=3,floor(3.98)=3 ceil(x) :取最大的整数 ceil(3.18)=4,ceil( ...
- python3.4学习笔记(十一) 列表、数组实例
python3.4学习笔记(十一) 列表.数组实例 #python列表,数组类型要相同,python不需要指定数据类型,可以把各种类型打包进去#python列表可以包含整数,浮点数,字符串,对象#创建 ...
- 【python学习笔记】3.字符串使用
[python学习笔记]3.字符串使用 字符串是一种序列,素有标准的序列操作对字符串用样适用,字符串是不可以改变 格式化操作符,%,左侧是格式化字符串,右侧是被格式的值,可以是一个值.元组.字典 数值 ...
随机推荐
- 「Note」数论方向 - 组合数学
1. 容斥原理 1.1 介绍 解决集合内计数问题. \(S\) 为集合编号集合. \[\left | \bigcup_{i\in S}A_i \right | =\sum_{T\subseteq S\ ...
- SAP-EWM/ECC 系统后台配置(引用,备份)
原文:https://blog.csdn.net/Daniel_kong198577/article/details/19615153 Unit1 – Basic Settings (default) ...
- 数栈技术分享前端篇:TS,看你哪里逃~
数栈是-站式大数据开发平台,我们在github和gitee上有一个有趣的开源项目:FlinkX,FlinkX是一个基于Flink的批流统一的数据同步工具,既可以采集静态的数据,也可以采集实时变化的数据 ...
- hot100之栈
有效的括号(020) 跳过 最小栈(155) class MinStack { private final Deque<int[]> stack = new ArrayDeque<& ...
- 超实用!SpringAI提示词的4种神级用法
提示词(Prompt)是输入给大模型(LLM)的文本指令,用于明确地告诉大模型你想要解决的问题或完成的任务,也是大语言模型理解用户需求并生成准确答案的基础.因此 prompt 使用的好坏,直接决定了大 ...
- Web前端入门第 71 问:JavaScript DOM 节点操作(增删改)常用方法
有一个深有体会的事:发现现在很多前端同学,经常用 Vue 开发项目之后,在某些需求场景要操作 DOM 节点的时,就不知道咋办了~~ 以前接手过其他开发团队的项目,项目被漏洞扫描工具发现了异常,原因是用 ...
- firefox修改headers 伪装为手机版
世界在脚下vip 2017.12.23 16:22:32 字数 184 阅读 694 1.在浏览器地址栏输入"about:config" 2.新建字符串"general. ...
- 如何在FastAPI中打造坚不可摧的Web安全防线?
扫描二维码 关注或者微信搜一搜:编程智域 前端至全栈交流与成长 发现1000+提升效率与开发的AI工具和实用程序:https://tools.cmdragon.cn/ 第一章:基础安全框架认知 一.W ...
- MKL库求解矩阵特征值、特征向量(LAPACKE_dgeev、dsyev)
LAPACK(Linear Algebra PACKage)库,是用Fortran语言编写的线性代数计算库,包含线性方程组求解(\(AX=B\)).矩阵分解.矩阵求逆.求矩阵特征值.奇异值等.该库用B ...
- CF559E Gerald and Path 题解
CF559E Gerald and Path 很困难的 DP 题,状态不是很好想.对于这种线段覆盖类题目,显然先覆盖哪个线段没有影响,我们可以通过按照端点位置升序排序后按照顺序考虑,这样可能会有一些额 ...