[英]Java - check space between string
我使用Java Swing开发了一个比较文本工具。 我的比较登录名是这样的。
String A = "Hello World Java"
String B = "Hello World Java"
我所做的是,我基本上用" "(space)
split
了字符串,然后添加到我的数组列表中。 arraylist将如下所示。
array1(0) = {Hello} array1(1)={World} array1(2)={Java}
array2(0) = {Hello} array2(1)={World} array2(2)={Java}
然后,我将array1中的第一个元素与array2中的第一个元素进行比较。 如果等于,则比较为PASS ,如果失败,则需要显示为FAIL 。 输出将是这样。
<pass>Hello<pass><pass>World<pass><pass>Java<pass>
我在需要显示间距的地方也做了改进。 所以我的最终输出需要像这样。
<pass>Hello<pass><quote><pass>World<pass><quote><quote><pass>Java<pass>
知道我该如何实现吗? 请指教。
尝试用数组中的元素替换原始字符串的一部分,其中元素将通过或失败的信息“增强”。
void checkString(String orig, String part, Boolean passed) {
if (passed) {
a.replace(part, "<pass>" + part + "<pass>");
} else {
a.replace(part, "<fail>" + part + "<fail>");
}
}
所以你的例子:
String A = "Hello World Java"
String B = "Hello World Java"
// Do comparison, like you do
// take your first array
array1(0) = {Hello} array1(1)={World} array1(2)={Java}
// call method for each part in array
checkString(A, array1(0), isPassed);
我试图对此进行一些模拟,结果如下:
String A = "Hello World Java"
输出:
[您好,World,,Java]
String B = "Hello World Java"
输出:
[您好,世界,Java]
因此,要解决此问题,我可以使用replace来清理最终输出,例如:
Arrays.toString(yourString.split(" ")).replace(" ", "").replace(",,", ",")
我认为它将适用于所有输入。
希望它能帮助^^
这是你想要的吗?
public static String compare(String[] a, String[] b) {
String op = "";
int len = a.length > b.length ? a.length : b.length;
for (int i = 0; i < len; i++) {
String aVal = "";
String bVal = "";
if (a.length > i) {
aVal = a[i];
}
if (b.length > i) {
bVal = b[i];
}
if (aVal.equals(bVal)) {
op += "<pass>" + a[i] + "<pass>";
} else {
op += "<fail>" + a[i] + "<fail>";
}
if (i != len - 1) {
op += "<quote>";
}
}
return op;
}
public static void main(String[] args) {
String A = "Hello World Java1 A";
String B = "Hello World Java";
String[] splitA = A.split(" ");
String[] splitB = B.split(" ");
System.out.println(compare(splitA, splitB));
}
输出:
<pass>Hello<pass><quote><pass>World<pass><quote><fail>Java1<fail><quote><fail>A<fail>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.