[英]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.