#java #String中的常用方法 #类型相互转换

目录

基本数据类型

4、String类的常用方法

public boolean equals(Object anObject)

public int compareTo(String anotherString)

public boolean contains(CharSequence s)

public int indexOf(String str)和public int lastIndexOf(String str)

public boolean startsWith(String prefix)和public boolean endsWith(String suffix)

public String substring(int beginIndex)

public char[] toCharArray() //当前字符串转换为一个新的字符数组

public String trim() //返回字符串的副本,忽略前导空白和尾部空白

5、字符串的连接

6、格式化字符串

7、字符串和基本数据类型的相互转化

String str = String.valueOf(123); // 数值转 String

double d = Double.parseDouble(str); // String转数值

8、二维数组的定义和使用


2、设置实验环境

(1) 安装JDK:下载JDK包以后,按安装向导的提示依次安装。

(2) 更新环境变量:

    • 选择“新建系统变量”,弹出“新建系统变量”对话框,在“变量名”文本框输入“JAVA_HOME”,在“变量值”文本框输入JDK的安装路径;
    • 编辑“系统变量”中的”path”变量的值,在“变量值”最后增加JDK安装目录下的bin目录,例如”%JAVA_HOME%\bin; ”;
    • 在“系统变量”选项区域中查看CLASSPATH 变量,如果不存在,则新建变量CLASSPATH,否则选中该变量,单击“编辑”按钮,在“变量值”文本框的起始位置添加”.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;”。

(3) 进入命令行控制台,分别输入“java“、“java -version“和“javac“命令,看是否能够出现正确的提示信息(注意:配置完成后需将原来打开的命令提示符窗口关闭并重新打开运行)。

3、基本数据类型、变量

(1) 标识符的命名原则

以字母、下划线(一)、美元符($)开始的一个字符序列,后面可以跟字母、下划线、 美元符、数字.

  1. 基本数据类型

基本数据类型表1-1所示。

表1-1 基本数据类型

类型标识

含 义

所占字节

默认值

byte

字节型

1

0

&hort

短整型

2

0

int

整型

4

0

long

长整型

8

0

float

单精度浮点型

4

0.0F

double

双精度浮点型

8

0.0D

char

字符型

2

0

boolean

布尔型

1

false

  1. 数据的特殊表示
  1. 整数的八进制表示形式:以0 (零)开头,如012。
  2. 十六进制表示形式:以Ox开头,如Oxa1
  3. 整数:默认int型,长整数可在后面加L
  4. 实数:默认双精度型,要明确表示为float型可在数据后加F。
  5. 布尔型数据:只有true和false两个值。
  6. 字符型数据:用单引号括起来。
  1. 转义符

Java字符采用Unicode编码。“\”(反斜杠)在字符或字符串表示中有特殊作用,它和字符合并,用于表示一些特殊字符,如表1-2所示。

表1-2常见转义符

转义字符

描 述

\’

单引号字符

\”

双引号字符

\\

反斜杠

\r

回车

\n

换行

\f

走纸换页

\t

横向跳格

\b

退格

  1. 自动类型转换与强制类型转换

自动转换次序如下:

byteshortcharintlongfloatdouble

按照箭头所指方向,处于左边的数据类型的数据可以自动转换赋值给右边的数据类型的变量,但反之,将处于右边的数据类型的数据赋值给处于左边的数据类型的变量必须经过强制转换。

② 布尔类型不能与其他类型进行转换。

③ 赋值时强制转换可能导致数据丢失精度。

4、String类的常用方法

Java的String类包含了很多方法,下面介绍部分常用的方法,其它方法的使用请参看Java API文档。

  1. public int length()

该方法用来获取一个String对象的字符序列的长度,例如:

String str = "String类的常用方法";

System.out.println(str.length());          //输出12

System.out.println("我爱Java".length());    //输出6

  1. public boolean equals(Object anObject)

将当前String对象的字符序列与参数anObject指定的对象比较。例如:

String s1 = "AA";

String s2 = "AA";

System.out.println(s1.equals(s2)); // 输出true

System.out.println(s1 == s2);      // 输出true

String s3 = new String("AA");

String s4 = new String("AA");

System.out.println(s3.equals(s4)); // 输出true

System.out.println(s3 == s4);      // 输出false

String类重写了Object类的equals方法,比较的是String对象的字符序列内容是否相等,因此上述代码中,s1.equals(s2)和s3.equals(s4)比较都为true。由于字符串变量s1和s2所引用的字符串常量是保存在字符串常量池中,字符串常量池中不存在两个相同的对象,所以字符串变量s1和s2都是指向字符串常量池中的“AA”对象,对象的地址是相同的,因此s1 == s2为true。而字符串变量s3和s4指向堆内存中两个不同的字符串对象,对象的地址是不同的,因此s3 == s4为false。上述字符串比较的内存示意如图1-1所示。

 图1-1 内存示意图

  1. public int compareTo(String anotherString)

该方法是按字典顺序比较两个字符串对应字符的大小(ASCII码顺序),返回值是整型。如果两个字符串第一个字符不等,结束比较,返回他们之间的差值;如果两个字符串第一个字符相等,则进行第二个字符的比较,依次类推,直至比较的字符或被比较的字符有一方结束。

  1. 如果参数字符串等于此字符串,则返回值 0;
  2. 如果此字符串小于字符串参数,则返回一个小于 0 的值;
  3. 如果此字符串大于字符串参数,则返回一个大于 0 的值。

例如:

String str1 = "Strings";

String str2 = "Strings";

String str3 = "Strings123";

System.out.println(str1.compareTo(str2));          //输出0

System.out.println(str2.compareTo(str3));          //输出-3

System.out.println(str3.compareTo(str1));          //输出3

  1. public boolean contains(CharSequence s)

    测试当前字符串对象的字符序列是否包含指定的字符序列,包含返回 true,否则返回 false。例如:

String str = "String类的常用方法";

System.out.println(str.contains("String"));            //true,大小写也区分

System.out.println(str.contains("string"));            //false

  1. public int indexOf(String str)和public int lastIndexOf(String str)

上面两个方法分别返回给定子字符串在当前字符串的字符序列中第一次最后一次出现的索引位置,如果此字符串中没有这样的字符,则返回 -1。

注意:String对象的字符序列索引位置从0开始。

    String对象的字符序列中转义字符是一个字符,例如,\n代表回车,如果要在字符序列中表示目录符号,那么Windows目录符必须转义写成\\,Unix目录符直接写成/即可。例如:

String str = "String类的常用方法.java";

String path = "c:\\java\\jsp\\A.java";

System.out.println(str.indexOf("."));              //输出12

System.out.println(path.indexOf("\\"));            //输出2

System.out.println(path.lastIndexOf("\\"));        //输出11

  1. public boolean startsWith(String prefix)和public boolean endsWith(String suffix)

上面两个方法分别用来测试当前字符串是否以指定的前缀开始和以指定的后缀结束。例如:

String str = "String类的常用方法.java";

System.out.println(str.startsWith("java"));    //false

System.out.println(str.endsWith("java"));      //true

  1. public String substring(int beginIndex)

该方法是从当前字符串的beginIndex索引处的字符开始,到字符串末尾结束,截取并返回一个新的字符串。另外,还可以使用重载的substring(int beginIndex, int endIndex)方法,截取并返回到指定索引 endIndex - 1 处的新的字符串。例如:

String str = "String类的常用方法.java";

int position = str.indexOf(".");

System.out.println(str.substring(position+1));     //输出java

System.out.println(str.substring(0, 6));           //输出String,前闭后开

  1. public char[] toCharArray()

该方法是将当前字符串转换为一个新的字符数组。例如:

String str = new String("String类的常用方法");

char a[] = str.toCharArray();

for (int i = a.length - 1; i >= 0; i--) {

    System.out.print(a[i] + " ");

}

运行结果:

g n i r t S

  1. public String trim()

该方法返回字符串的副本,忽略前导空白和尾部空白。例如:

String str = " String类的常用方法 ";         //字符串首尾带有空白字符

System.out.println(str.length());          //输出14

System.out.println(str.trim().length());   //输出12

5、字符串的连接

String 类提供了连接两个字符串的方法:

string1.concat(string2);

返回 string2 连接 string1 的新字符串。也可以对字符串常量使用 concat() 方法,例如:

"cares".concat("s");   //返回"caress"

 "to".concat("get").concat("her");     //返回"together"

字符串更常用的是使用“+”进行连接运算,从而得到一个新的String对象。例如

String str1 = "hello";

String str2 = "world";

String newStr = str1+str2;

System.out.println(newStr);    // 输出helloworld

    当连接一个字符串和一个非字符串时,后者将被转换成字符串。例如:

String str = "123";

int a = 4;

String newStr = str + a;

System.out.println(newStr);    // 输出1234

6、格式化字符串

格式化输出的printf()方法。

float floatVar = 3.14f;

int intVar = 2;

String stringVar = "hello";

System.out.printf("浮点型变量的值为 %f, 整型变量的值为 %d, 字符串变量的值为 %s", floatVar, intVar, stringVar);

String 类的静态方法format()能用来创建可复用的格式化字符串,而不仅仅是用于一次打印输出。format()方法的格式为:

format(String format, Object... args)

该方法是使用指定的格式字符串和参数返回一个格式化字符串。例如:上述printf()方法的代码可以改写为:

String str;

float floatVar = 3.14f;

int intVar = 2;

String stringVar = "hello";

str = String.format("浮点型变量的值为 %f, 整型变量的值为 %d, 字符串变量的值为 %s", floatVar, intVar, stringVar);

7、字符串和基本数据类型的相互转化

Integer 类在对象中包装了一个基本类型 int 的值。

Integer 类提供了多个方法,能在 int 类型和 String 类型之间互相转换。

Integer类位于java.lang包下,static静态方法可以直接通过类名来调用

static int parseInt(String s)           //返回一个新的int

例如:Integer.parseInt(“100”)   返回整形100

同理,Double类也位于java.lang包下

static double parseDouble(String s)    // 返回一个新的 double 值

    我们可以使用包装类的下述静态方法将数值字符组成的字符序列转化为相应的基本数据类型。

public static byte parseByte(String s)

public static short parseShort(String s)

public static int parseInt(String s)

public static long parseLong(String s)

public static float parseFloat(String s)

public static double parseDouble(String s)

同时,还可以使用String类的下述静态方法将数值转化为String对象。

public static String valueOf(byte n)

public static String valueOf(short n)

public static String valueOf(int n)

public static String valueOf(long n)

public static String valueOf(float n)

public static String valueOf(double n)

    下面代码演示了上述转化过程。

String str = "12.57";

double d = Double.parseDouble(str); // String转数值

System.out.println(d);                 //输出12.57

int i = 10;

d = 23.4;

System.out.println(String.valueOf(i)); // 数值转 String

System.out.println(String.valueOf(d)); //输出23.4

8、二维数组的定义和使用

// 二维数组赋值

int[][] array = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };

// 打印原始二维数组

int t;

for (int i = 0; i < 3; i++) {

    for (int j = 0; j < 3; j++)

        System.out.print("  " + array[i][j]);

    System.out.println();

}

9、Scanner类

Scanner 类是一个基于正则表达式的文本扫描器,它可以从文件、输入流、字符串中解析出基本类型值和字符串值。当我们引入 Scanner 这个类的时候,我们需要导入java.util.Scanner这个类。例如:

import java.util.Scanner;

Scanner对象通过next()系列方法将文本标识转换成不同类型的值。通常和标准输入流(System.in)结合,允许用户通过标准输入流读入数据。Scanner类提供的方法:nextByte()nextshort()nextLong()nextDouble()nextFloat()nextInt()。例如:

import java.util.Scanner;

public class Demo {

    public static void main(String[] args) {

        // 创建一个Scanner的实例对象,这个对象可以为用户提供输入,将这个实例对象命名为reader,后面我们可以直接用reader调用Scanner类的相关方法

        Scanner sc = new Scanner(System.in);

        // 从键盘处接收用户输入的浮点型数据

        double a = sc.nextDouble();

        System.out.print("输入的数据为:" + a);

        sc.close();    

    }

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值