首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算第一个和最后一个字母之间的字母数- Java

计算第一个和最后一个字母之间的字母数- Java
EN

Stack Overflow用户
提问于 2014-03-05 05:55:55
回答 4查看 1K关注 0票数 0

好的,所以我正在做这个项目,它要求我让字符串的第一个和最后一个setter出现,并计算它们之间的字母数,然后输出。我试着改变一些反向的字符串代码,但是我不能让输出出现在我的IDE中。

有没有人可以看一看我的代码,并提出一些建议?

代码语言:javascript
运行
复制
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;
    }
}
EN

回答 4

Stack Overflow用户

发布于 2014-03-05 06:01:56

只需使用charAt()构建它

代码语言:javascript
运行
复制
return "" + str.charAt(0) + (str.length() - 2) + str.charAt(str.length() - 1);

前面的""导致后面的数值被连接成字符串(而不是算术相加)。

一种更简洁的替代方案是:

代码语言:javascript
运行
复制
return countWord.replaceAll("(.).*(.)", "$1" + (str.length() - 2) + "$2")
票数 2
EN

Stack Overflow用户

发布于 2018-01-25 05:59:46

一旦你确定了第一个和最后一个字符,就不需要不必要的条件了。试着这样做:

代码语言:javascript
运行
复制
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循环,可以这样简单

代码语言:javascript
运行
复制
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;
}
票数 1
EN

Stack Overflow用户

发布于 2014-03-05 06:03:27

您可以使用string.length()方法来获取字符串的总长度。你的代码应该是这样的:

代码语言:javascript
运行
复制
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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22183968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档