如何在Java中使用substring方法
我有3个字符串:如何在Java中使用substring方法,java,substring,Java,Substring,我有3个字符串: String text1 = "abcdefgh"; String text2 = "abcdefghijklmn"; String text3 = "abcdefg"; 我想这样做: text1.substring(int1, int2); text2.substring(int1, int2); text3.substring(int1, int2); 将返回abc(前3个字符) 问题是字符串长度总是在变化,因此无论发生什么情况,我都不能使用text1.length。找
String text1 = "abcdefgh";
String text2 = "abcdefghijklmn";
String text3 = "abcdefg";
我想这样做:
text1.substring(int1, int2);
text2.substring(int1, int2);
text3.substring(int1, int2);
将返回abc(前3个字符)
问题是字符串长度总是在变化,因此无论发生什么情况,我都不能使用text1.length。找到了答案:
.substring(0, 3)
如果长度发生变化,请先进行检查
if (textStr != null && textStr.length() >= 3) {
newStr = textStr.substring(0, 3);
}
因为字符串长度可以变化(甚至可能是空的),所以最好写一些更通用的东西。在您的示例中,您的测试字符串总是超过3个字符,但总是这样吗?您还可以编写此函数来自动将字符串填充到所需的长度
public static String variableLengthSubstring(String text, int length) {
StringBuilder substring = new StringBuilder();
if(text != null) {
int i = 0;
length = Math.min(length, text.length());
while(substring.length() < length) {
substring.append(text.charAt(i++));
}
}
return substring.toString();
}
public静态字符串variableLengthSubstring(字符串文本,整数长度){
StringBuilder子字符串=新建StringBuilder();
如果(文本!=null){
int i=0;
length=Math.min(length,text.length());
while(substring.length()
为什么不使用text1=text1.子字符串(0,3)??您总是需要前3个字符吗?那么为什么不设置int1=0和int2=3呢?这样做到底有什么问题?您是否希望字符串在大小写中少于3个字符。即使字符串的长度发生变化,但如果字符串大于3个字符,子字符串应适用于索引0和3。它与我的注释有什么不同?这个问题有意义吗?应将其重命名为“如何使用子字符串方法”。如果字符串短于3个字符或为空,则此操作将失败。按照@Dragan的建议去做。