在 Java 中复制字符串

在 Java 语言中,字符串是一种存储字符序列的数据类型。字符串是一个包装类,它提供了诸如 compare()replace()substring() 之类的方法。每当对象被实例化时,对象就会存储在堆内存中。

在 Java 中复制字符串

下面是向你展示如何在 Java 中复制字符串的代码块。

public class StringCopy {
    public static void main(String[] args) {
        String first = "First String";
        System.out.println("First initially = " + first);
        String second = first;
        System.out.println("String copy in second = " + second);
        first = "Updated string";
        System.out.println("First after update = " + first);
        String newCopy = String.copyValueOf(first.toCharArray());
        System.out.println("Copy using copyValueOf() = " + newCopy);
        String copyString = new String(first);
        System.out.println("Copy using new = " + copyString);
    }
}

在上面的程序中,在操作的第一部分初始化了一个字符串。表示 String first = "First String" 在内存中创建了 First String 的实例;此外,这个新的字符串地址首先被分配给变量。该值使用 println() 方法打印。

现在,String second = first 行将第一个引用存储在第二个实例中,并在另一行中打印副本值。因此,second 变量包含 first 引用。然后,first = "Updated string" 会将第一个的引用从现有值更改为堆内存中的另一个字符串。

Java 字符串本质上是不可变的。这意味着当一个字符串被创建时,它就在堆内存中。当另一个值被分配给第一个变量时,它不会被覆盖。相反,该变量现在引用了堆内存中的另一个字符串。除非垃圾收集器开始工作,否则堆内存中的引用会存储到堆中。当没有被任何变量引用时,该函数会从常量内存池中清除变量。

另一种复制字符串的方法是使用 copyValueOf 方法。它是一个以字符数组作为输入的静态工厂方法。该实例首先使用 toCharArray 函数转换为字符数组。最后的字符串实例被 newCopy 变量引用并打印在另一行中。

复制字符串的第三种方法是使用 new 关键字。该方法在内存中创建两个实例:第一个保存值,另一个 copyString 变量存储 first 变量的引用。

下面是从上面的程序产生的代码块。

输出:

First initially = First String
String copy in second = First String
First after update = Updated string
Copy using copyValueOf() = Updated string
Copy using new = Updated string

在 JavaScript 中反转字符串——使用 JS .reverse() 方法反转字符串

在 JavaScript 中反转字符串是你在 Web 开发过程中经常需要做的事情。在面试、解决算法问题或进行数据操作时,你可能需要反转字符串。

在本文中,我们将学习如何在 JavaScript 中使用内置的 JavaScript 方法以及 JavaScript reverse() 方法来反转字符串。

对于那些匆忙的人,这里有一行代码可以帮助你在 JavaScript 中反转字符串:

let myReversedString = myString.split("").reverse().join("");

或者你可以使用这个:

let myReversedString = [...myString].reverse().join("");

现在让我们讨论这些方法以及它们在帮助我们在 JavaScript 中反转字符串方面所起的作用。

如何使用 JavaScript 方法反转字符串

使用 JavaScript 方法来反转字符串很简单。这是因为我们将只使用三种执行不同功能的方法,它们被一起使用来实现这一共同目标。

通常,我们使用扩展运算符或 split() 方法将特定字符串拆分为一个数组。然后我们使用 reverse() 方法,该方法只能用于反转数组中的元素。最后,我们使用 join() 方法将这个数组作为字符串连接在一起。

让我们分别尝试这些方法。

如何在 JavaScript 中拆分字符串

在 JavaScript 中拆分字符串有两种主要方法:使用扩展运算符或 split() 方法。

如何使用 split() 方法拆分字符串

split() 方法是一种非常强大的方法,可用于根据给定模式将字符串分解为子字符串的有序列表。

例如,如果我们有一个用逗号分隔的月份,我们想将其拆分成一个月份数组,可以这样做:

const months_string = 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec';

console.log(months_string.split(','))

这将输出以下数组:

["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]

在我们的例子中,字符串可能是一个没有分隔每个字符的常规字符串。然后我们所要做的就是传递一个没有空格的空字符串,如下所示:

let myString = "Hello World";

console.log(myString.split("")); // ["H","e","l","l","o"," ","W","o","r","l","d"]
console.log(myString.split(" ")); // ["Hello","World"]

如何使用扩展运算符拆分字符串

扩展运算符是 ES6 的新增功能,可以轻松地将字符串拆分为数组。它不仅仅是拆分字符串:

let myString = "Hello World";

console.log([...myString]); // ["H","e","l","l","o"," ","W","o","r","l","d"]

如何使用 reverse() 方法反转字符串数组

到目前为止,我们已经学习了如何拆分字符串。而 split() 方法当然是将字符串分割成一个数组。现在你可以对其应用反转数组方法,如下所示:

let myString = "Hello World";

let splitString1 = myString.split("");
let splitString2 = myString.split(" ");

console.log(splitString1.reverse()); // ["d","l","r","o","W"," ","o","l","l","e","H"]
console.log(splitString2.reverse()); // ["World","Hello"]

我们也可以通过这种方式将其应用于扩展运算符,但我们将无法定义如何拆分字符串:

let myString = "Hello World";

console.log([...myString].reverse()); // ["d","l","r","o","W"," ","o","l","l","e","H"]

如何使用 join() 方法连接字符串数组

这是另一种强大的方法,与 split() 方法的工作方向相反,它通过连接数组中由逗号或任何其他被指定为分隔符的字符串分隔的所有元素来创建一个新字符串。

例如,如果我们想要将一个字符串数组连接成一个用破折号(-)分隔的单个字符串,可以执行以下操作:

let monthArray = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
console.log(monthArray.join("-"));

这将返回以下内容:

"Jan-Feb-Mar-Apr-May-Jun-Jul-Aug-Sep-Oct-Nov-Dec"

在我们的例子中,我们已经反转了字符串,不想要任何中间的东西。这意味着我们将通过这种方式传递一个空字符串:

let myString = "Hello World";

let splitString1 = myString.split("");
let splitString2 = myString.split(" ");

let reversedStringArray1 = splitString1.reverse();
let reversedStringArray2 = splitString2.reverse();

console.log(reversedStringArray1.join("")); // "dlroW olleH"
console.log(reversedStringArray2.join("")); // "WorldHello"

最后,通过将所有方法按正确顺序组合在一起,我们只需一行代码即可执行所有这些操作:

let myString = "Hello World";

let myReversedString = myString.split("").reverse().join("");

console.log(myReversedString); // "dlroW olleH"

这同样适用于扩展运算符:

let myString = "Hello World";

let myReversedString = [...myString].reverse().join("");

console.log(myReversedString); // "dlroW olleH"

小结

在本教程中,我们学习了如何使用 reverse() 方法以及其他 JavaScript 方法来反转字符串。我们还通过示例看到了这些方法如何使用。