直接定义字符串:
直接定义字符串是指使用双引号表示字符串中的内容,例如“Hello Java”、“Java 编程”等。
具体方法是用字符串常量直接初始化一个 String 对象,示例如下:
String str = "Hello Java";
或者
String str;
str = "Hello Java";
注意:字符串变量必须经过初始化才能使用。
使用 String 类定义:
提到在 Java 中每个双引号定义的字符串都是一个 String 类的对象。因此,可以通
过使用 String 类的构造方法来创建字符串,该类位于 java.lang 包中(关于 Java 常用的包,
后面会详细讲解)。
String 类的构造方法有多种重载形式,每种形式都可以定义字符串。下面介绍最常用的几
种形式。
注意:具有和类名相同的名称,而且没有返回类型的方法称为构造方法。重载是指在一个
类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。后面会
详细讲解,这里了解一下就可以。
1. String():
初始化一个新创建的 String 对象,表示一个空字符序列。
2. String(String original):
初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列。换句话说,新创
建的字符串是该参数字符串的副本。例如:
String str1 = new String("Hello Java");
String str2 = new String(str1);
这里 str1 和 str2 的值是相等的。
3. String(char[ ]value) 了解:
分配一个新的字符串,将参数中的字符数组元素全部变为字符串。该字符数组的内容已被
复制,后续对字符数组的修改不会影响新创建的字符串。例如:
char a[] = {'H','e','l','l','0'};
String sChar = new String(a);
a[1] = 's';
上述 sChar 变量的值是字符串“Hello”。 即使在创建字符串之后,对 a 数组中的第 2 个元素
进行了修改,但未影响 sChar 的值。
4. String(char[] value,int offset,int count) 了解:
分配一个新的 String,它包含来自该字符数组参数一个子数组的字符。offset 参数是子数组
第一个字符的索引,count 参数指定子数组的长度。该子数组的内容已被赋值,后续对字
符数组的修改不会影响新创建的字符串。例如:
char a[]={'H','e','l','l','o'};
String sChar=new String(a,1,4);
a[1]='s';
上述 sChar 变量的值是字符串“Hello”。该构造方法使用字符数组中的部分连续元素来创建
字符串对象。offset 参数指定起始索引值,count 指定截取元素的个数。创建字符串对象后
,即使在后面修改了 a 数组中第 2 个元素的值,对 sChar 的值也没有任何影响。
String 转换为 int
String 字符串转整型 int 有以下两种方式:
Integer.parseInt(str)
Integer.valueOf(str).intValue()
注意:Integer 是一个类,是 int 基本数据类型的封装类。
例如下面代码所示:
public static void main(String[] args) {
String str = "123";
int n = 0;
// 第一种转换方法:Integer.parseInt(str)
n = Integer.parseInt(str);
System.out.println("Integer.parseInt(str) : " + n);
// 第二种转换方法:Integer.valueOf(str).intValue()
n = 0;
n = Integer.valueOf(str).intValue();
System.out.println("Integer.parseInt(str) : " + n);
}
输出结果为:
Integer.parseInt(str) : 123
Integer.parseInt(str) : 123
在 String 转换 int 时,String 的值一定是整数,否则会报数字转换异常(
java.lang.NumberFormatException)。
文献种类:专题技术文献;
开发工具与关键技术: JDK_java
作者:黄家喜 ;年级:17 ;撰写时间: 2021 年 1 月8 日
文献编号: 归档时间: 年 月 日
Java流程控制语句
JAVA 支持两种选择语句:if 语句和 switch 语句。
其中 if 语句使用布尔表达式或布尔值作为分支条件来进行分支控制,
而 switch 语句则用于对多个整型值进行匹配,从而实现分支控制。//不准确
选择结构(也叫分支结构)解决了顺序结构不能判断的缺点,可以根据一个条件判断执行
哪些语句块。
if 结构
if 语句是使用最多的条件分支结构。
if 语句的最简语法格式如下,表示“如果满足某种条件,就进行某种处理”。
if (条件表达式) {
语句块;
}
其中“条件表达式”和“语句块”是比较重要的两个地方。
条件表达式:条件表达式可以是任意一种逻辑表达式,最后返回的结果必须是一个
布尔值。如果条件为真,那么执行语句块;如果条件为假,则语句块将被绕过而不被执行
。
语句块:该语句块可以是一条语句也可以是多条语句。如果仅有一条语句,可省略
条件语句中的大括号 {}。当从编程规范角度不要省略大括号,省略大括号会使程序的可读
性变差。
if 条件语句的运行流程如图 1 所示。
假设有 num1 和 num2 两个变量,它们的值分别是 50 和 34。下面编写程序,要求使用 if
语句判断 num1 和 num2 的大小关系,并输出比较结果。
实现代码如下:
public static void main(String[] args) {
int num1 = 50;
int num2 = 34;
if (num1 > num2) {
System.out.println("num1 大于 num2");
}
if (num1 == num2) {
System.out.println("num2 等于 num2");
}
if (num1 < num2) {
System.out.println("num1 小于 num2");
}
}
该段选择语句判断了 num1 值和 num2 值的大于、等于和小于关系。此处 num1 为 50,
num2 为 34,所以执行后会输出“num1 大于 num2”。。
if-else 结构
单 if 语句仅能在满足条件时使用,而无法执行任何其他操作(停止)。而结合 else 语句的
if 可以定义两个操作,此时的 if…else 语句表示“如果条件正确则执行一个操作,否则执行
另一个操作”。
使用 if…else 语句的语法格式如下所示:
if (表达式) {
语句块 1;
} else {
语句块 2;
}
在上述语法格式中,如果 if 关键字后面的表达式成立,那么就执行语句块 1,否则的话则
执行语句块 2,其运行流程如图 2 所示。
在例 1 中为实现比较 num1 和 num2 的大小,使用了 3 个 if 条件语句分别判断大于、等于
和小于的情况。下面使用 if…else 双条件来实现,具体代码如下:
public static void main(String[] args) {
int num1 = 50;
int num2 = 34;
// 如果 num1 等于 num2
if (num1 == num2) {
System.out.println("num1 等于 num2");
}
// 如果 num1 大于 num2
if (num1 > num2) {
System.out.println("num1 大于 num2");
} else {
// 否则就是 num1 小于 num2
System.out.println("num1 小于 num2");
}
}
双条件语句减少了代码的编写量,同时增强了程序的可读性。简化后的结果还是一样,执
行后会输出“num1 大于 num2”。