当前位置: 首页 > 知识库问答 >
问题:

字符串格式:在java中双倍到最大字符数

仲柏
2023-03-14

如标题中所述,我想用Java在字符串中编写一个具有最大字符数的double。

实际上是一个精确的字符数,但我可以用字符串包装它。format(“%xs”,...)用给定的X填充缺少的字符。

注意,在SO和internet上有很多与此相关的问题,但我找不到与我的Java完全相同的问题。

我想的是写

    null

=>是否有一个实用的工具来做这件事或类似的事情?

共有1个答案

闾丘博超
2023-03-14

这就是我现在所拥有的,不是完美的,但我已经花了足够的时间在上面了。

其思想是double.toString所做的正是我想要的,但长度是固定的(也许有人知道如何配置该长度?)。所以我使用它并在必要时删除十进制

/** write a double to a string of exact given length (but for some extreme cases) */
public static String doubleToString(double x, int length) {
    String str = Double.toString(x);
    if(str.length() <= length){
        return org.apache.commons.lang.StringUtils.repeat(" ", length - str.length()) + str;

    } else if(str.contains("E")){
        String[] split = str.split("E");
        String num = split[0];
        String exp = split[1];
        return removeDecimal(num, length - exp.length()-1) + 'E' + exp;
    } else {
        return removeDecimal(str, length);
    }
}

// remove trailing decimal of a double as string such as xxx.yyyy
private static String removeDecimal(String doubleStr, int length){
    int dotIndex = doubleStr.indexOf('.');
    return doubleStr.substring(0, Math.max(dotIndex+1, length));
}
 类似资料:
  • 我被一些有趣的任务困住了。我有3个字符串(hello,heavy&word)。需要计算每一个世界的总和并打印最大的世界和总和。用于计算-a=1,z=26。所以hello=50,heavy=61&word=60。最大的字符串是“Heavy”,我需要像“Heavy,61”那样打印出来。我找到了从一个字符串计算字符的代码:

  • 在Java中,我看到了将转换为的四种选择。 我认为第一个是最慢的。第二个很方便。我推测第三个可能会返回一个先前创建的< code>String实例,但我不确定,API文档也没有这么说。这同样适用于选项四。这种实例的重用是非常幸运的,因为基于散列的查找可以利用< code>String中的< code>hashCode()缓存。(哪个特性也没有在API文档中描述,但是很多人告诉我。) 我来自C语言,

  • 我有以下JSON字符串: 我只想要和。我试过这样的方法: 但我得到了以下错误: 我只使用过几次JSON。有人能帮我吗? 对我来说最好的例子是这样的,我在另一个例子中做过: 可能吗? 现在我已经做到了: 我试着这样做: 然后: 但现在当我做一个Prtinout时,我会得到和以前一样的错误:

  • 其他语言,如Python、JavaScript和C#都有简单的字符串格式。Java有自己的版本吗?我在谷歌上搜索了一下,什么也找不到,但我希望不是这样。 对于那些不理解这个问题的人,这里有一个其他语言的例子。 蟒蛇: JavaScript: C#:

  • 问题内容: 因此,我正在尝试解析一些具有多行文本的文本文件。我的工作是遍历所有单词并将其打印出文件。 因此,我阅读了所有行,然后遍历它们,并用空格将每一行分开,如下所示: 现在的问题是,在某些情况下,Java在两个单词之间看不到空格… 我也试图遍历具有空格但Java看不到它的字符串,并返回true。 现在我完全困惑了… 这是代码: 问题答案: 我怀疑您的文字字符类似于non-breakable-s

  • 我似乎找不到一种方法来设置双重格式,将精度限制在小数点后的几个位置,当在标签中显示时。也许我遗漏了一些重要的东西,但我在官方文件中找不到任何东西。 提前感谢您的帮助!