资讯专栏INFORMATION COLUMN

Java™ 教程(字符串)

ThreeWords / 1338人阅读

字符串

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

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

创建字符串

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

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编程语言中,字符串是对象,String类有60多个方法和13个构造函数。

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

String s = "Hello world!";

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

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

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

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

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

上一篇:字符 下一篇:在数字和字符串之间转换

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72886.html

相关文章

  • Java教程(目录)

    Java™ 教程 Java教程是为JDK 8编写的,本页面中描述的示例和实践没有利用在后续版本中引入的改进。 Java教程是希望使用Java编程语言创建应用程序的程序员的实用指南,其中包括数百个完整的工作示例和数十个课程,相关课程组被组织成教程。 覆盖基础知识的路径 这些教程以书籍的形式提供,如Java教程,第六版,前往Amazon.com购买。 入门 介绍Java技术和安装Java开发软件并使用...

    lifesimple 评论0 收藏0
  • Java教程(扫描)

    扫描 编程I/O通常涉及转换人们喜欢使用的整齐格式的数据,为了帮助你完成这些工作,Java平台提供了两个API,扫描器API将输入分解为与数据位相关联的单个标记,格式化API将数据组装成格式良好、可读的形式。 Scanner类型的对象对于将格式化输入分解为标记并根据其数据类型转换单个标记非常有用。 将输入分解为标记 默认情况下,扫描器使用空格分隔标记(空格字符包括空格、制表符和行终止符,有关完整列...

    dantezhao 评论0 收藏0
  • [译] Java 8 Nashorn 教程

    摘要:未来的主要发布基于。在中调用函数支持从代码中直接调用定义在脚本文件中的函数。下面的函数稍后会在端调用为了调用函数,你首先需要将脚本引擎转换为。调用函数将结果输出到,所以我们会首先看到输出。幸运的是,有一套补救措施。 原文:Java 8 Nashorn Tutorial 译者:飞龙 协议:CC BY-NC-SA 4.0 这个教程中,你会通过简单易懂的代码示例,来了解Nashorn Ja...

    _ivan 评论0 收藏0
  • Java核心技术教程整理,长期更新

    以下是Java技术栈微信公众号发布的关于 Java 的技术干货,从以下几个方面汇总。 Java 基础篇 Java 集合篇 Java 多线程篇 Java JVM篇 Java 进阶篇 Java 新特性篇 Java 工具篇 Java 书籍篇 Java基础篇 8张图带你轻松温习 Java 知识 Java父类强制转换子类原则 一张图搞清楚 Java 异常机制 通用唯一标识码UUID的介绍及使用 字符串...

    Anchorer 评论0 收藏0
  • Java教程字符流)

    字符流 Java平台使用Unicode约定存储字符值,字符流I/O自动将此内部格式与本地字符集进行转换,在Western语言环境中,本地字符集通常是ASCII的8位超集。 对于大多数应用程序,具有字符流的I/O并不比具有字节流的I/O复杂,使用流类完成的输入和输出会自动转换为本地字符集和从本地字符集转换,使用字符流代替字节流的程序会自动适应本地字符集并为国际化做了准备 — 所有这些都无需程序员的额...

    mochixuan 评论0 收藏0
  • Java教程字符

    字符 大多数情况下,如果使用单个字符值,则将使用原始char类型,例如: char ch = a; // Unicode for uppercase Greek omega character char uniChar = u03A9; // an array of chars char[] charArray = { a, b, c, d, e }; 但是,有时候需要使用字符作为对象 — 例如...

    lscho 评论0 收藏0

发表评论

0条评论

ThreeWords

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<