gpt4 book ai didi

Java 修剪字符和空格

转载 作者:行者123 更新时间:2023-12-03 02:54:36 24 4
gpt4 key购买 nike

阅读 Java TestNG 测试之上的注释,我的注释为:

@TestInfo(id={ " C26603", " C10047" }) 

其中 TestInfo 只是将 id() 作为字符串数组的接口(interface):

public String[] id() default {};

C26603C10047 只是我分配的测试 ID。

以下是测试结构的样子(例如):

案例 1:

@TestInfo(id={ " C26603", " C10047" })
public void testDoSomething() {
Assert.assertTrue(false);
}

同样更干净的情况是:

案例 2:

@TestInfo(id={ "C26603", "C10047" })

正如您所看到的,案例 2 比案例 1 更清晰。案例 2 的测试 ID 中没有空格。

如何获取这些 id 并确保它们开头没有 C 字符而只是一个纯数字?例如,我只想要 26603 代表我的第一个 ID,10047 代表第二个 ID。 id 数组中有一些空格(引号内)。我想修剪所有内容(例如空格)并获取 id。我目前正在应用 for 循环 来处理每个 id,一旦获得纯数字,我想进行第 3 方 API 调用(API 期望纯数字作为输入,因此删除 C 作为初始字符和其他空白很重要)。

这是我尝试过的:

TestInfo annotation = method.getAnnotation(TestInfo.class);
if(annotation!=null) {
for(String test_id: annotation.id()) {
//check if id is null or empty
if (test_id !=null && !test_id.isEmpty()) {
//remove white spaces and check if id = "C1234" or id = "1234"
if(Character.isLetter(test_id.trim().charAt(0))) {
test_id = test_id.substring(1);
}
System.out.println(test_id);
System.out.println(test_id.trim());
}
}
}

以上代码为案例 1 提供了 C26603not 26603。它适用于案例 2。

案例 3:

@TestInfo(id={ " 26603", " 10047" })

对于这种情况,没有 C 作为测试 id 的开头字符,因此该函数应该足够智能,可以仅修剪空格并继续。

最佳答案

最简单的方法是使用正则表达式非数字字符类 (\D) 删除所有非数字内容:

test_id = test_id.replaceAll("\\D", "");

关于Java 修剪字符和空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37313248/

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