【发布时间】:2012-05-10 21:11:50
【问题描述】:
我正在操纵 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);
}
【问题讨论】:
-
Tthis 完全是线程安全的并且性能极佳。没有任何解决方案可以击败您拥有的硬编码映射。
标签: java string thread-safety char stringbuilder