“线程中的异常”;“主要”;java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:10
正在尝试获取正好10个字符长的消息。当信息短于10个字符时,有人能给我指出正确的方向吗 以下是我目前的代码:“线程中的异常”;“主要”;java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:10,java,string,Java,String,正在尝试获取正好10个字符长的消息。当信息短于10个字符时,有人能给我指出正确的方向吗 以下是我目前的代码: System.out.println("Word:"); String word = scan.nextLine(); String shortword = word.substring(0, 10); String shortworduppercase = shortword.toUpperCase(); System.out.println(shortworduppercas
System.out.println("Word:");
String word = scan.nextLine();
String shortword = word.substring(0, 10);
String shortworduppercase = shortword.toUpperCase();
System.out.println(shortworduppercase);
我知道这和帕德赖特有关,但我似乎什么都做不到 如果您询问如何获得填充和/或截断为正好10个字符的字符串,那么有很多方法可以做到这一点。例如,这里有一个在不依赖任何(显式)条件逻辑的情况下处理所有非空情况的方法:
String getTenChars(String input) {
return new StringBuilder(input).append(" ").subString(0, 10);
}
如果字符串的长度比试图作为子字符串的结束索引短,则会得到
java.lang.StringIndexOutOfBoundsException
在这种情况下,您需要在子字符串之前检查字符串的长度
int maxLength = 10;
String shortWord;
if (word.length() <= maxLength){
shortWord = word;
} else {
shortWord = word.substring(0,maxLength);
}
System.out.println(shortWord);
你能解释一下你想完成什么吗?这取决于你想如何填写。那么,你能从标题中删除第一个单词(steg…aphy)吗?虽然您可能正在这样一个项目的上下文中编写代码,但这个问题和代码与此没有直接关系,因此在标题中使用该术语只会使该术语的搜索变得杂乱无章。尝试找出方法,以便在输入少于10个字符的词时,程序会自动填充10中缺少的字符。因此,如果您输入一个5个字母的单词,程序将再输入5个字母,使其成为10个。感谢标题编辑。“程序再输入5”是指程序附加了一些常量(如@JohnBollinger的答案中的空格),还是程序提示用户进行更多输入?
int maxLength = 10;
StringBuilder shortWord;
if (word.length() <= maxLength) {
shortWord = new StringBuilder(word);
shortWord.setLength(10);
} else {
shortWord = new StringBuilder(word.substring(0, maxLength));
}