首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将整数转换为"/ \“字符串

将整数转换为"/ \“字符串
EN

Stack Overflow用户
提问于 2017-06-13 09:15:24
回答 5查看 56关注 0票数 2

我正在尝试从"/“或"\”将整数转换为字符串生成

例如:6= /\,22 = //\\\\,其中/=1 \=5

对于x=1或x=5是正确的

代码语言:javascript
复制
    public String fromArabic(int x)
    {
        if(x>29 || x<1)
            throw new IllegalArgumentException("Error IllegalArgumentException");

        int tmp=x;
        String out="";
        StringBuilder o=new StringBuilder(out);

        while(tmp!=0)
        {
            if(tmp-5>=0)
            {
                tmp-=5;
                o.append("\\");
            }
            else if(tmp-1>=0 && tmp-5<0)
            {
                tmp-=1;
                o.append("/");
            }
        }

       out=o.toString();
       return out;
    }

产出:

预期:但是是:<\//>

如何使它正确?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-06-13 09:22:29

代码语言:javascript
复制
public String fromArabic(int x)
{
    if(x>29 || x<1)
        throw new IllegalArgumentException();
    int tmp = x;
    StringBuilder o = new StringBuilder();
    while(tmp != 0)
    {
        if(tmp >= 5)
        {
            tmp -= 5;
            o.append("\\");
        }
        else if(tmp >= 1)
        {
            tmp-=1;
            o.append("/");
        }
    }
   return o.reverse().toString();
}
票数 1
EN

Stack Overflow用户

发布于 2017-06-13 09:22:17

在tmp == 0和每次迭代减5或1之前不需要循环。

如果将x / 5分配给int,则会得到'\'符号的数目,而x % 5则给出'/'符号的数目。

这里是一行(Java 8)

代码语言:javascript
复制
return String.join("", Collections.nCopies((x%5), "/"), Collections.nCopies((x/5), "\\"));
票数 3
EN

Stack Overflow用户

发布于 2017-06-13 09:22:10

您只需在以下情况下反转内部的if序列:

代码语言:javascript
复制
while(tmp!=0)
{
  if  (tmp-1>=0 && tmp-5<0)
  {
    tmp-=1;
    o.append("/");
  }
  else if(tmp-5>=0)
  {                
    tmp-=5;
     o.append("\\");
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44517178

复制
相关文章

相似问题

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