尝试显示长度恰好为10个字符的消息。当消息超过10个字符时,有人能指出我正确的方向吗?
到目前为止,这是我的代码:
System.out.println("Word:");
String word = scan.nextLine();
String shortword = word.substring(0, 10);
String shortworduppercase = shortword.toUpperCase();
System.out.println(shortworduppercase);
我知道它与padRight有关,但我似乎无法得到任何工作。
答案 0 :(得分:2)
如果您在询问如何获取填充和/或截断为10个字符的字符串,那么有很多方法可以实现。例如,这里有一个处理所有非null情况而不依赖于任何(显式)条件逻辑的情况:
String getTenChars(String input) {
return new StringBuilder(input).append(" ").subString(0, 10);
}
答案 1 :(得分:1)
如果字符串的长度缩短,而您尝试子字符串的结束索引将缩短,则会得到java.lang.StringIndexOutOfBoundsException
。
在这种情况下,您需要在子串之前检查字符串的长度
int maxLength = 10;
String shortWord;
if (word.length() <= maxLength){
shortWord = word;
} else {
shortWord = word.substring(0,maxLength);
}
System.out.println(shortWord);
如果你真的需要一个10长度的字符串,你可以使用setLength
类的StringBuilder
方法。
例如:
int maxLength = 10;
StringBuilder shortWord;
if (word.length() <= maxLength) {
shortWord = new StringBuilder(word);
shortWord.setLength(10);
} else {
shortWord = new StringBuilder(word.substring(0, maxLength));
}