gpt4 book ai didi

java - 交换内容后构建新字符串的更好方法

转载 作者:行者123 更新时间:2023-12-01 15:23:19 24 4
gpt4 key购买 nike

我正在操纵 ssn。 输入=“123456789” 输出=“896745123”

您从输入中取出前 3 位数字(即 123),并将其与最后两位数字“89”交换,然后将“45”与“67”交换。下面是我使用 toCharArray 的代码。但我不喜欢它。此方法(不是测试)一次可以被许多用户访问。我一直在寻找性能、可读性和交易安全性更好的解决方案。

感谢您的帮助。

@Test
public void testSSNString(){

String original="123456789";
String result="896745123";
char[] charResult=original.toCharArray();

char temp=charResult[6];
charResult[6]=charResult[0];
charResult[0]=charResult[7];
charResult[7]=charResult[1];
charResult[1]=charResult[8];
charResult[8]=charResult[2];
charResult[2]=charResult[5];
charResult[5]=charResult[4];
charResult[4]=charResult[3];
charResult[3]=temp;

assertEquals(original.toCharArray(),charResult);

}

最佳答案

就性能而言,您给出的方法本质上是您在 Java 中可以做到的最好方法。使用数组比使用 StringBuilder 更快。​​

为了提高可读性,我只需进行一些小的更改,例如为排列后的输出创建一个新数组:

@Test
public void testSSNString() {
String original = "123456789";
String expected = "896745123";

char[] in = original.toCharArray();
char[] out = new char[9];
out[0] = in[7];
out[1] = in[8];
out[2] = in[5];
out[3] = in[6];
out[4] = in[3];
out[5] = in[4];
out[6] = in[0];
out[7] = in[1];
out[8] = in[2];

assertEquals(expected.toCharArray(), out);
}

关于java - 交换内容后构建新字符串的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10542208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com