Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java字符串转换_Java_Junit - Fatal编程技术网

Java字符串转换

Java字符串转换,java,junit,Java,Junit,我需要将字符串的顺序更改为预期值。而且,“”,“应该根据我的期望得到匹配 String actual = "10684 ANNA MARIE DR, GLEN ALLEN, VA, APT 111, 23060"; String expected = "10684 ANNA MARIE DR, APT 111, GLEN ALLEN, VA 23060"; 因此,我可以这样断言结果 Assert.assertEquals(actual,expected); 任何帮助都将不胜感激。基于,拆分字

我需要将字符串的顺序更改为预期值。而且,“
”,“
应该根据我的期望得到匹配

String actual = "10684 ANNA MARIE DR, GLEN ALLEN, VA, APT 111, 23060";
String expected = "10684 ANNA MARIE DR, APT 111, GLEN ALLEN, VA 23060";
因此,我可以这样断言结果

Assert.assertEquals(actual,expected);

任何帮助都将不胜感激。

基于
拆分字符串,对结果数组进行排序,然后使用
Assert.assertarayequals
比较数组

基于
拆分字符串,对结果数组进行排序,然后使用Assert.assertArrayEquals比较数组

您应该用Address类替换该字符串,然后轻松比较地址。在《有效的Java》一书中,你们可以找到一章,他们说字符串不适合用来替换其他结构(很明显你们这里有地址结构)。

你们应该用地址类替换字符串,然后比较地址。在《有效的Java》一书中,你可以找到一章,他们说字符串不适合用来替换其他结构(很明显,这里有地址结构)。

你可以拆分它们并对数组排序,然后检查它们是否相等

String actual = "10684 ANNA MARIE DR, GLEN ALLEN, VA, APT 111, 23060";
String expected = "10684 ANNA MARIE DR, APT 111, GLEN ALLEN, VA 23060";

String arr1[] = actual.split(", ");
String arr2[] = expected.split(", ");

Arrays.sort(arr1);
Arrays.sort(arr2);

Assert.assertArrayEquals( arr1, arr2 );

您可以拆分它们并对数组进行排序,然后检查它们是否相等

String actual = "10684 ANNA MARIE DR, GLEN ALLEN, VA, APT 111, 23060";
String expected = "10684 ANNA MARIE DR, APT 111, GLEN ALLEN, VA 23060";

String arr1[] = actual.split(", ");
String arr2[] = expected.split(", ");

Arrays.sort(arr1);
Arrays.sort(arr2);

Assert.assertArrayEquals( arr1, arr2 );

你可以用一种有点愚蠢的方式:

String actual = "10684 ANNA MARIE DR, GLEN ALLEN, VA, APT 111, 23060";
String[] arr = actual.split(", ");
String result = arr[0] + ", " + arr[3] + ", " + arr[1] + ", " + arr[2] + " " + arr[4];

你可以用一种有点愚蠢的方式:

String actual = "10684 ANNA MARIE DR, GLEN ALLEN, VA, APT 111, 23060";
String[] arr = actual.split(", ");
String result = arr[0] + ", " + arr[3] + ", " + arr[1] + ", " + arr[2] + " " + arr[4];

与其他建议不同的是,通过
,数组将不相等

VA
23060
将产生两个不同的元素,而在预期的
字符串中,它们是单个元素


需要OP的澄清。

与其他建议不同,即按
拆分,数组将不相等

String actualArray[] = actual.split(",");
int i = 0;

String finalStr = actualArray[i] +","+actualArray[i+3]+","+actualArray[i+1]+","+actualArray[i+2]+actualArray[i+4];
System.out.println(finalStr);
VA
23060
将产生两个不同的元素,而在预期的
字符串中,它们是单个元素



需要OP的澄清。

这是一个单一的情况,还是它必须是一个通用函数?@LppEdd-这是一个通用方法,我可以通过它的参数传递实际和预期的值。如果一个元素在原始中出现两次,那么它是什么?@Aishu元素的通用顺序是什么?(街道、城市、州等)你如何识别它们?输入字符串是否总是这样?实际的
字符串是否总是按相同的顺序排列?或者他们可以点菜吗?你想重新排列它们只是为了比较它们,还是仅仅知道它们是否包含相同的信息就足够了?对于其中三分之二的情况,您已经有了答案。这是一个单独的情况,还是它必须是一个通用函数?@LppEdd-这是一个通用方法,我可以通过它的参数传递实际值和期望值。如果一个元素在原始元素中出现两次,那么它的通用顺序是什么?@Aishu?(街道、城市、州等)你如何识别它们?输入字符串是否总是这样?实际的
字符串是否总是按相同的顺序排列?或者他们可以点菜吗?你想重新排列它们只是为了比较它们,还是仅仅知道它们是否包含相同的信息就足够了?对于其中三分之二的情况,您已经有了可用的答案。您假设OP需要对其字符串进行字母排序。好的解决方案是,假设OP的目标实际上只是断言两个字符串是否包含相同的信息。如果他的主要目标是重新排列字符串,那么…-我们仍然需要OP的更多说明。从这个问题中我得到的是OP得到一个字符串,其中所有逗号(
)分隔的元素都应该出现在预期的字符串中。这一秩序没有得到维持。这个答案是关于那个案子的。@domdom你是对的。然而,“重新排列字符串”是一种业务逻辑,我几乎没有预料到在测试用例中会需要这样的事情。所以,只要他澄清,我的答案就是这样。我同意,这就是为什么到目前为止我最喜欢你的答案。你假设OP需要对他的字符串进行字母排序。好的解决方案,假设OP的目标真的只是断言两个字符串是否包含相同的信息。如果他的主要目标是重新排列字符串,那么…-我们仍然需要OP的更多说明。从这个问题中我得到的是OP得到一个字符串,其中所有逗号(
)分隔的元素都应该出现在预期的字符串中。这一秩序没有得到维持。这个答案是关于那个案子的。@domdom你是对的。然而,“重新排列字符串”是一种业务逻辑,我几乎没有预料到在测试用例中会需要这样的事情。因此,只要他澄清,我的答案就是这样。我同意,这就是为什么到目前为止我最喜欢你的答案。如果
实际的
字符串总是以相同的顺序排列,那么是的,这将是直接的解决方案。但是OP还没有真正澄清这一点。如果
实际的
字符串总是处于相同的顺序,那么是的,这将是直接的解决方案。但OP还没有真正澄清这一点。这和?这不是很一样吗?
String actualArray[] = actual.split(",");
int i = 0;

String finalStr = actualArray[i] +","+actualArray[i+3]+","+actualArray[i+1]+","+actualArray[i+2]+actualArray[i+4];
System.out.println(finalStr);