我尝试从长字符串中获取字符串,该字符串是Firebase URL
"https://firebasestorage.googleapis.com/v0/b/No-manworld-3577.appspot.com/o/Contacts%2F1510361061636_Julien_Vcf?alt=media&token=c0bff20d-d115-4fef-b58c-4c7ffaef4296"
现在,如果您注意到上面字符串中姓名朱利安之前和之后的分数不足。我试图得到这个名字,但我正在得到
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
这是我的代码
String s="https://firebasestorage.googleapis.com/v0/b/No-manworld-3577.appspot.com/o/Contacts%2F1510361061636_Julien_Vcf?alt=media&token=c0bff20d-d115-4fef-b58c-4c7ffaef4296";
String newName=s.substring(s.indexOf("_")+1, s.indexOf("_"));
System.out.println(newName);
如果不清楚选择哪一个2_
,那么这里是Java8Stream的方法。。
public class Check {
public static void main(String[] args) {
String s = "https://firebasestorage.googleapis.com/v0/b/No-manworld-3577.appspot.com/o/Contacts%2F1510361061636_Julien_Vcf?alt=media&token=c0bff20d-d115-4fef-b58c-4c7ffaef4296";
long count = s.chars().filter(ch -> ch == '_').count();
if (count == 2) {
System.out.println(s.substring(s.indexOf('_') + 1, s.lastIndexOf('_')));
} else {
System.out.println("More than 2 underscores");
}
}
}
为什么你的代码不起作用?
让我们假设 s.indexOf(“_”)
得到一些正数说 10
,然后下面换算成 ...
String newName=s.substring(s.indexOf("_")+1, s.indexOf("_"));
String newName=s.substring(11, 10);
这将使StringIndexOutOfBoundsException
作为endIndex
正如我在评论中所说,当使用子字符串时,第一个数字必须小于第二个数字。
在您的例子中,您使用x1和
x
调用子字符串<代码>x 1
我知道您正在尝试获取 _
的第二个索引
。
下面是在您的情况下会产生< code>Julien的代码:
String s = "...";
int start = s.indexOf("_") + 1;
int end = s.indexOf("_", start);
// name will hold the content of s between the first two `_`s, assuming they exist.
String name = s.substring(start, end);
我试图从以下URL获取json字符串:http://status.mojang.com/check 感谢任何帮助
在这个问题之前,我先要说明一个事实,那就是我学习编程才一个月,而这个学校的作业却把我难住了。具体地说,它是摩尔斯电码到英语翻译器(反之亦然)...这是我被困住的部分:
为什么我在字符串开始时获得额外的而在字符串之间获得 我在期待:
问题内容: 你如何得到一个的长度?例如,我有一个定义如下的变量: 但是,我似乎无法在字符串上找到长度方法。 问题答案: 自Swift 4+起 只是: 原因。 (感谢Martin R) 从Swift 2开始: 在Swift 2中,Apple已将全局功能更改为协议扩展,这些扩展可与符合协议的任何类型匹配。因此,新语法为: (感谢JohnDifool的注意) 从Swift 1开始 使用计数字符方法: 直
在 Java 中, 要获取字符串的长度,可以使用 String 类的 length() 方法,其语法形式如下: 例 1 在学生信息管理系统中对管理员密码有这样的规定,即密码长度必须大于 6 位且小于 12 位。因为密码太短容易被破解,太长的话又不容易记住。这就需要首先获取用户输入的密码字符串,然后调用 length() 方法获取长度,再做进一步的长度判断,最终实现代码如下所示: 上述代码将用户输入