好的,所以我正在做这个项目,它要求我让字符串的第一个和最后一个setter出现,并计算它们之间的字母数,然后输出。我试着改变一些反向的字符串代码,但是我不能让输出出现在我的IDE中。
有没有人可以看一看我的代码,并提出一些建议?
public static void main(String[] args) {
String countWord;
countWord = JOptionPane.showInputDialog(null,
"Enter the string you wish to have formatted:");
}
static String countMe(String countWord) {
int count = 1;
char first = countWord.charAt (0);
char last = countWord.charAt(-1);
StringBuilder word = new StringBuilder();
for(int i = countWord.length() - 1; i >= 0; --i)
if (countWord.charAt(i) != first ) {
if (countWord.charAt(i) != last) {
count++;
}
}
return countWord + first + count + last;
}
}
发布于 2014-03-05 06:01:56
只需使用charAt()
构建它
return "" + str.charAt(0) + (str.length() - 2) + str.charAt(str.length() - 1);
前面的""
导致后面的数值被连接成字符串(而不是算术相加)。
一种更简洁的替代方案是:
return countWord.replaceAll("(.).*(.)", "$1" + (str.length() - 2) + "$2")
发布于 2018-01-25 05:59:46
一旦你确定了第一个和最后一个字符,就不需要不必要的条件了。试着这样做:
static String countMe(String countWord) {
char first = countWord.charAt(0);
char last = countWord.charAt(countWord.length()-1);
int count=0;
for (int i = 1; i < countWord.length()-1; i++)
{
count++;
}
return first + String.valueOf(count) + last;
}
或者,如果不强制使用for循环,可以这样简单
static String countMe(String countWord) {
char first = countWord.charAt(0);
char last = countWord.charAt(countWord.length()-1);
int count = countWord.substring(1, countWord.length()-1).length();
return first + String.valueOf(count) + last;
}
发布于 2014-03-05 06:03:27
您可以使用string.length()方法来获取字符串的总长度。你的代码应该是这样的:
int totalLength = countWord.length();
int betweenLength = totalLength - 2; // This gives the count of characters between first and last letters
char first = countWord.charAt(0);
char last = countWord.charAt(str.length() - 1);
String answer = first + betweenLength + last;
https://stackoverflow.com/questions/22183968
复制相似问题