繁体   English   中英

无法在Java中将int转换为字符串

[英]Cannot convert int to string in Java

我收到一个错误: cannot convert int to string in Java

脚本只需通过获取前2个字母,中间字母和后2个字母来提取字符串中的“隐藏”单词

这是我的代码:

package hello;
import java.util.*;
public class hello {
    public static String extract(String input) {
        if (input.length()>5) {
            int len = input.length();
            return input.charAt(0) + input.charAt(1) + input.charAt(len/2)+ input.charAt(len-2)+ input.charAt(len-1);
        }
    }
    public static void main(String[] args) {
        System.out.println("Enter a word:");
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        String output = extract(input);
        System.out.println(output);     
    }
}
return input.charAt(0) + input.charAt(1) + input.charAt(len/2)+ input.charAt(len-2)+ input.charAt(len-1)

char是一个int类型。 如果将一堆字符加在一起,则会得到一个整数,而不是字符串。

另一方面,如果您将一个字符串添加到char或另一个字符串中,则它们会串联到另一个字符串中:

return input.substring(0,2) + input.charAt(len/2) + input.substring(len-2);

编辑

您的方法当前仅在input.length()>5返回。 如果长度为5或更小,则您的方法不知道应返回什么,因此代码将无法编译。

如果您知道在这种情况下您的方法应该返回什么,请在if块之后添加一个额外的return

public static String extract(String input) {
    int len = input.length();
    if (len >= 5) {
        return input.substring(0,2) + input.charAt(len/2) + input.substring(len-2);
    }
    return input; // must return something if the length was less than 5.
}

另外,如果您的字符串太短,则可能要引发异常。

当您在两个字符之间使用+时,它被认为就像您对两个整数求和,例如:

'a' + 'b'

相当于:

97 + 98

在您的情况下,您可以使用String.copyValueOf从您的字符创建一个字符串。

return String.copyValueOf(new 
        char[] { 
                input.charAt(0), input.charAt(1), input.charAt(len / 2),
                input.charAt(len - 2), input.charAt(len - 1) 
        }
);

这将从这些字符创建一个字符串。

如果您的条件不正确,您的方法仍然需要返回默认值。

public static String extract(String input) {
    if (input.length() > 5) {
        int len = input.length();
        return String.copyValueOf(new 
                char[] { 
                        input.charAt(0), input.charAt(1), input.charAt(len / 2),
                        input.charAt(len - 2), input.charAt(len - 1) 
                }
        );
    }
    return "";//if the condition is wrong return empty string or null
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM