gpt4 book ai didi

java - 使用indexOf从网站获取信息

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

我正在尝试从 API 获取信息,但我只是不知道如何使用 String.indexOf 从这一行获取信息。我是自学成才,从来没有达到使用indexOf的地步,直到此时,我尝试在网上查找有关如何使用indexOf的教程,但我能找到的只是在字符串中查找特定字母,而不是只需从一行中获取一个字符串。

我尝试多次更改indexOf的值,但没有成功。 ID 已正确设置,因为有人帮助了我,但我想我还需要一个名字,但我不知道。

URL url = new URL("https://api.mojang.com/users/profiles/minecraft/" + 
args[0]); //args[0] == name of player
URLConnection con = url.openConnection();
InputStream isr =con.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(isr));
String line;
while ((line = br.readLine()) != null) {
int startOfID = line.indexOf("\"id\"") + 4;
int startOfValueID = line.indexOf("\"", startOfID) + 1;
int endOfValueID = line.indexOf("\"", startOfValueID);
// Figure out Name indexOf
int startOfName = line.indexOf("\"name\"") + 2;
int startOfValueName = line.indexOf("\"", startOfName);
int endOfValueName = line.indexOf("\"", startOfValueName);
Name = line.substring(startOfValueName, endOfValueName);
UUID = line.substring(startOfValueID, endOfValueID);
sender.sendMessage(Name + " | " + UUID); // ignore (debugging
purposes)
strUUIDCut = UUID.substring(0,8) + "-" + UUID.substring(8,12) + "-
" + UUID.substring(12,16) + "-" + UUID.substring(16,20) + "-" +
UUID.substring(20,32);
}

没有抛出任何错误。我希望从 API 中获得一个名称。无论是 3 个字母的名称还是 15 个字母的名称。

最佳答案

你的线条看起来像这样:

"id"="1", "name" = "foo"

解析 id 时,您将检索 "id" 的开头 (0),并正确添加子字符串的长度 (4)。然后,从这里开始,通过搜索下一个 " 字符的索引来检索实际 ID 值的开头。

现在,您应该对名称执行相同的操作。 "name" 子字符串的长度为 6 个字符。因此,在计算 startOfName 时,您应该添加 6 而不是 2:

int startOfName = line.indexOf("\"name\"") + 6;

然后,因为实际名称仅在下一个 " 字符之后开始:

int startOfValueName = line.indexOf("\"", startOfName) + 1;

同样相当于您使用 ID 所做的事情。

关于java - 使用indexOf从网站获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57969990/

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