有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

junit 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";

所以,我可以这样断言结果

Assert.assertEquals(actual,expected);

任何帮助都将不胜感激


共 (5) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    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);
    
  3. # 3 楼答案

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

    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 );
    
  4. # 4 楼答案

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

  5. # 5 楼答案

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

    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];