java中判断一个字符串是否存在于一个String[]中
时间: 2024-01-28 07:05:30 浏览: 75
可以使用Java中的Arrays类中的静态方法binarySearch来判断一个字符串是否存在于一个String[]中。代码示例如下:
```
String[] arr = {"hello", "world", "java", "python"};
String str = "java";
int index = Arrays.binarySearch(arr, str);
if (index >= 0) {
System.out.println(str + " is found at index " + index);
} else {
System.out.println(str + " is not found");
}
```
注意:使用binarySearch方法前需要先将数组进行排序,否则可能得到错误的结果。
相关问题
java 如何判断字符串存在于list中
在 Java 中,判断一个字符串是否存在于一个 List 中,可以使用 List 的 contains 方法。示例代码如下:
```java
List<String> myList = new ArrayList<>();
myList.add("apple");
myList.add("banana");
myList.add("orange");
String myString = "banana";
if (myList.contains(myString)) {
System.out.println("字符串存在于列表中");
} else {
System.out.println("字符串不存在于列表中");
}
```
输出结果为:
```
字符串存在于列表中
```
需要注意的是,List 的 contains 方法是基于 equals 方法进行判断的,因此在使用时需要保证 List 中的元素都正确实现了 equals 方法。如果是自定义对象,则需要自行实现 equals 方法。
Katalon写一个Groovy脚本,java8利用java-diff-util实现两个文件夹对比,并将比较结果以文件为单位出力成各自的HTML文件。要求:当文件在两个文件夹中都存在时,能识别隔行数据,将两个文件有差异的数据都出力到HTML中,解析两个文件的差异数据并将有差异的字段高亮显示出来;当文件只在一个文件夹中存在的文件,将这个信息出力到HTML中
好的,以下是一个简单的实现,需要安装 java-diff-utils 和 commons-io 两个库:
```groovy
import difflib.*
import org.apache.commons.io.FileUtils
// 定义两个文件夹路径
def folder1 = "path/to/folder1"
def folder2 = "path/to/folder2"
// 定义保存比较结果的文件夹路径
def outputFolder = "path/to/output/folder"
// 获取两个文件夹中的所有文件
def folder1Files = FileUtils.listFiles(new File(folder1), null, true)
def folder2Files = FileUtils.listFiles(new File(folder2), null, true)
// 找出两个文件夹中共有的文件
def commonFiles = folder1Files.intersect(folder2Files)
// 比较每个共有的文件
commonFiles.each { file ->
def filePath = file.absolutePath
def relativePath = filePath.replace(folder1, "")
def outputFile = new File(outputFolder + relativePath + ".html")
// 读取两个文件的内容
def file1Content = FileUtils.readFileToString(new File(folder1 + relativePath), "UTF-8")
def file2Content = FileUtils.readFileToString(new File(folder2 + relativePath), "UTF-8")
// 将文件内容按行分割并比较
def file1Lines = file1Content.split("\n")
def file2Lines = file2Content.split("\n")
def patch = DiffUtils.diff(file1Lines, file2Lines)
// 生成比较结果的HTML
def htmlBuilder = new StringBuilder()
htmlBuilder.append("<html><head><meta charset='UTF-8'></head><body>")
patch.getDeltas().each { delta ->
// 找出有差异的行
def lines = delta.getRevised().getLines()
lines.each { line ->
// 将差异的字段高亮显示
def highlightedLine = line
if (delta.getType() == Delta.TYPE.CHANGE) {
def change = diffChunkToString(delta.getRevised())
highlightedLine = line.replace(change, "<span style='background-color: yellow'>$change</span>")
}
htmlBuilder.append("<p>$highlightedLine</p>")
}
}
htmlBuilder.append("</body></html>")
// 将比较结果保存到HTML文件中
FileUtils.writeStringToFile(outputFile, htmlBuilder.toString(), "UTF-8")
}
// 处理只在一个文件夹中存在的文件
def folder1Only = folder1Files.minus(commonFiles)
def folder2Only = folder2Files.minus(commonFiles)
def onlyFiles = folder1Only.plus(folder2Only)
onlyFiles.each { file ->
def filePath = file.absolutePath
def relativePath = filePath.replace(folder1, "").replace(folder2, "")
def outputFile = new File(outputFolder + relativePath + ".html")
// 将存在于一个文件夹中的文件信息输出到HTML文件中
def message = "Only exists in ${file.parent}: ${file.name}"
FileUtils.writeStringToFile(outputFile, "<html><body><p>$message</p></body></html>", "UTF-8")
}
// 将Diff对象转换为字符串
def diffChunkToString(diffChunk) {
def result = ""
def lines = diffChunk.getLines()
lines.each { line ->
if (!line.endsWith("\n")) {
line += "\n"
}
result += line
}
return result
}
```
这个脚本会按照要求比较两个文件夹中的所有文件,并将比较结果输出成HTML文件。注意,这个脚本只是一个简单的实现,可能还需要根据具体需求进行修改。
阅读全文