gpt4 book ai didi

java - 在循环中剪切字符串的特定部分

转载 作者:行者123 更新时间:2023-12-01 12:39:29 24 4
gpt4 key购买 nike

我有一个像这样的字符串:

String content = "{"begin"bf3b178a70.jpg","end",....},{"id":,"f06190e8938.jpg","end",....}"

我想像这样剪切图像ID:

bf3b178a70.jpg
f06190e893.png

之后,我想用一个新的 url 来组成图像 ID,如下所示:

url.com/image/bf3b178a70.jpg
url.com/image/f06190e893.png

我从 substring() 开始剪切第一部分,并使用 content.split(""id":,"); 但我对字符串数组和普通字符串有问题。我使用带有 for 循环的字符串数组,因为真正的字符串很长。

有人可以帮我吗?

最佳答案

乍一看,您的字符串格式似乎为 JSON 。如果是这种情况,您可以使用 JSON.org Java parserJSON.org site 上列出的许多其他解析器之一分解它,或者只是遵循他们给出的语法图;简单的字符串切割是不可取的,因为 JSON 不是 regular language .

我暂时假设您正在接收一个 JSON 对象数组(方括号括起来,逗号分隔),并且您正在从文件或 Web 服务中读取数据,其中任一提供一个InputStream。如果您有其他东西,您可以将 Reader 或纯 String 传递给 JSONTokener 构造函数,或者如果您有一个字节数组,您可以将其包装在 ByteArrayInputStream 中并将其传入。

我没有方便的 JDK 来检查它是否可以编译:-),但这里是。

import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import org.json.*;

public class ImageListProcessor
{
public static ArrayList<URL> processList(InputStream toProcess, URL baseURL)
throws JSONException, MalformedURLException
{
JSONTokener toProcessTokener = new JSONTokener(toProcess);
JSONObject toProcessResponse = new JSONObject(toProcess);
if (!toProcessResponse.isNull("error")) {
// it's an error response, probably a good idea to get out of here
throw new JSONException("Response contains error: " + toProcessResponse.get("error"));
}
JSONArray toProcessArray = toProcessResponse.getJSONArray("items");
int len = toProcessArray.length();
ArrayList<URL> result = new ArrayList<URL>(len);
for(int i = 0; i < len; i++) {
JSONObject imageRecord = toProcessArray.getJSONObject(i);
String imagePath = imageRecord.getString("image");
// if you want to remove the date portion of the path:
imagePath = imagePath.substring(1 + imagePath.lastIndexOf('/'));
URL combinedURL = new URL(baseURL, imagePath);
result.add(combinedURL);
}
return result;
}
}

关于java - 在循环中剪切字符串的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25253451/

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