java - 为什么在用int添加字符串的同时还要添加空字符串?

标签 java arrays string concatenation

在下面,当我没有添加“”(空字符串)时,输出是 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/

相关文章:

ruby-on-rails - 数组到 XML -- Rails

C++表达式必须具有常量值

c# - 解析 "DateTime.Now"?

python - 在Python中添加新的字符串方法

java - Java是否需要时间来调用方法?

java - Slick 3 java.time.LocalDate 映射

java - 从 Java 运行 TypeScript 编译器

php - 在 PDO 中动态使用数组值插入值

database - 匹配模糊字符串

java - Wicket 中关闭网页时调用的方法?