在下面,当我没有添加“”(空字符串)时,输出是 int 格式,这是非常不正常的,因为添加带有 int 的字符串总是给出一个字符串。但一旦我添加了空字符串,代码似乎就可以正常工作了。在这两种情况下,我都从我之前在代码中创建的字符串数组中添加了一个字符串。
import java.io.*;
public class TooLong{
public static void main(String[] args) throws IOException{
InputStreamReader n = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(n);
byte i ;
i=Byte.parseByte(input.readLine());
String origWords[] = new String[i];
for (int j=0;j<i;j++) origWords[j]= input.readLine();
for (int j=0;j<i;j++){
int charLength = origWords[j].length();
if (charLength < 11) System.out.println(origWords[j]);
else System.out.println(origWords[j].charAt(0) +""+ (charLength-2) + origWords[j].charAt(charLength-1) );
}
}
}
最佳答案
我认为,您正在努力实现“国际化⇒i18n”
这是因为 String.charAt(int)
返回 char
。使用 +
时将被视为数字。
通过将 +
与空字符串一起使用,可以强制编译器将所有内容转换为字符串
您可以使用String.substring(0,1)
代替第一个charAt
来强制类型String转换
关于java - 为什么在用int添加字符串的同时还要添加空字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59718322/