博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java™ 教程(字符串)
阅读量:6458 次
发布时间:2019-06-23

本文共 3618 字,大约阅读时间需要 12 分钟。

字符串

在Java编程中广泛使用的字符串是一系列字符,在Java编程语言中,字符串是对象。

Java平台提供类来创建和操作字符串。

创建字符串

创建字符串的最直接方法是编写:

String greeting = "Hello world!";

在这种情况下,"Hello world!"是一个字符串文字 — 代码中的一系列字符,用双引号括起来,每当它在代码中遇到字符串文字时,编译器就会创建一个带有其值的String对象 — 在本例中为Hello world!

与任何其他对象一样,你可以使用new关键字和构造函数创建String对象,String类有13个构造函数,允许你使用不同的源提供字符串的初始值,例如字符数组:

char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' };String helloString = new String(helloArray);System.out.println(helloString);

此代码段的最后一行显示hello.

注意:
String类是不可变的,因此一旦创建,就无法更改
String对象,
String类有许多方法,其中一些将在下面讨论,似乎可以修改字符串,由于字符串是不可变的,因此这些方法真正做的是创建并返回包含操作结果的新字符串。

字符串长度

用于获取对象信息的方法称为访问器方法,可以与字符串一起使用的一种访问器方法是length()方法,它返回字符串对象中包含的字符数,在执行以下两行代码后,len等于17

String palindrome = "Dot saw I was Tod";int len = palindrome.length();

palindrome是一个对称的单词或句子 — 它向前和向后拼写相同,忽略大小写和标点符号,这是一个简短而低效的程序来反转palindrome字符串,它调用String方法charAt(i),它返回字符串中的第i个字符,从0开始计数。

public class StringDemo {    public static void main(String[] args) {        String palindrome = "Dot saw I was Tod";        int len = palindrome.length();        char[] tempCharArray = new char[len];        char[] charArray = new char[len];                // put original string in an         // array of chars        for (int i = 0; i < len; i++) {            tempCharArray[i] =                 palindrome.charAt(i);        }                 // reverse array of chars        for (int j = 0; j < len; j++) {            charArray[j] =                tempCharArray[len - 1 - j];        }                String reversePalindrome =            new String(charArray);        System.out.println(reversePalindrome);    }}

运行该程序会产生以下输出:

doT saw I was toD

要完成字符串反转,程序必须将字符串转换为字符数组(第一个for循环),将数组转换为第二个数组(第二个for循环),然后再转换回字符串,String类包含一个方法getChars(),用于将字符串或字符串的一部分转换为字符数组,因此我们可以在上面的程序中替换第一个for循环:

palindrome.getChars(0, len, tempCharArray, 0);

连接字符串

String类包括用于连接两个字符串的方法:

string1.concat(string2);

这将返回一个新字符串,该字符串为string1,并在末尾添加了string2

你还可以将concat()方法与字符串文字一起使用,如下所示:

"My name is ".concat("Rumplestiltskin");

字符串通常使用+运算符连接,如:

"Hello," + " world" + "!"

结果是:

"Hello, world!"

+运算符广泛用于打印语句,例如:

String string1 = "saw I was ";System.out.println("Dot " + string1 + "Tod");

这将打印:

Dot saw I was Tod

这种连接可以是任何对象的混合,对于不是String的每个对象,调用其toString()方法将其转换为String

注意:Java编程语言不允许文字字符串跨越源文件中的行,因此必须在多行字符串中的每行末尾使用+连接运算符,例如:

String quote =     "Now is the time for all good " +    "men to come to the aid of their country.";

使用+连接运算符在行之间断开字符串在print语句中非常常见。

创建格式字符串

你已经看到使用printf()format()方法来打印带有格式化数字的输出,String类有一个等效的类方法format(),它返回一个String对象而不是一个PrintStream对象。

使用Stringstatic format()方法可以创建一个可以重用的格式化字符串,而不是一次性打印语句,例如替换:

System.out.printf("The value of the float " +                  "variable is %f, while " +                  "the value of the " +                   "integer variable is %d, " +                  "and the string is %s",                   floatVar, intVar, stringVar);

你可以这样写:

String fs;fs = String.format("The value of the float " +                   "variable is %f, while " +                   "the value of the " +                    "integer variable is %d, " +                   " and the string is %s",                   floatVar, intVar, stringVar);System.out.println(fs);

字符串总结

字符串是一系列字符,广泛用于Java编程,在Java编程语言中,字符串是对象,类有60多个方法和13个构造函数。

最常见的情况是,创建一个带有如下语句的字符串:

String s = "Hello world!";

而不是使用其中一个String构造函数。

String类有许多方法可以查找和检索子字符串,然后可以使用+连接运算符轻松地将它们重新组合成新的字符串。

String类还包括许多实用方法,其中包括split()toLowerCase()toUpperCase()valueOf()。后一种方法在将用户输入字符串转换为数字时是必不可少的,Number子类还具有将字符串转换为数字的方法,反之亦然。

除了String类之外,还有一个类,使用StringBuilder对象有时比使用字符串更有效,StringBuilder类提供了一些对字符串有用的方法,其中包括reverse(),但是,通常,String类具有更广泛的方法。

可以使用StringBuilder构造函数将字符串转换为字符串构建器,可以使用toString()方法将字符串构建器转换为字符串。


转载地址:http://kpizo.baihongyu.com/

你可能感兴趣的文章
poll
查看>>
解析查询 queryString 请求参数的函数
查看>>
学生选课系统数据存文件
查看>>
我的毕设总结所用的技术和只是要点 基于stm32F4的AGV嵌入式控制系统的设计
查看>>
JMeter—断言
查看>>
C++的新类创建:继承与组合
查看>>
odoo 权限设置
查看>>
asp操作access提示“无法从指定的数据表中删除”
查看>>
git bash 风格调整
查看>>
bzoj4589 Hard Nim
查看>>
java实现pdf旋转_基于Java实现PDF文本旋转倾斜
查看>>
python time库3.8_python3中datetime库,time库以及pandas中的时间函数区别与详解
查看>>
贪吃蛇java程序简化版_JAVA简版贪吃蛇
查看>>
poi java web_WebPOI JavaWeb 项目 导出excel表格(.xls) Develop 238万源代码下载- www.pudn.com...
查看>>
oracle报1405,【案例】Oracle报错ORA-15054 asm diskgroup无法mount的解决办法
查看>>
linux 脚本map,Linux Shell Map的用法详解
查看>>
如何在linux系统下配置共享文件夹,如何在windows和Linux系统之间共享文件夹.doc
查看>>
linux操作系统加固软件,系统安全:教你Linux操作系统的安全加固
查看>>
linux中yum源安装dhcp,24.Linux系统下动态网络源部署方法(dhcpd)
查看>>
ASP.NET性能优化之分布式Session
查看>>