java - 在每 x 位数字后拆分字符串

标签 java string split numbers add

我有个小问题。我需要将一个字符串拆分成 x 个部分并将它们加在一起。编辑:如果我想用 x=3 拆分它,那么我将需要 4 个部分,但如果我想用 x=4 拆分它,那么我将需要 3 个部分。所以我的硬编码代码很糟糕。 我的 x 总是我的字符串长度的倍数(3 是 009056737152 的倍数 - 长度 12)

示例:字符串:“009056737152”和地址长度 = 3;意味着我必须在 3 个数字之后拆分字符串。 009 056 737 152 然后我必须从右到左将其相加:251 + 737 + 650 + 009 = 1647。我的代码实际上无法正常工作。还有其他想法吗?

    int adresslength = 3;
    String str = "009056737152"; System.out.println(str);
    String result = str.substring(0,str.length() - adresslength - adresslength - adresslength );
    String result2 = str.substring(adresslength,str.length() + -adresslength -adresslength );
    String result3 = str.substring(adresslength + adresslength,str.length() +  -adresslength  );
    String result4 = str.substring(adresslength + adresslength + adresslength,str.length()  );
    System.out.println(result); System.out.println(result2);System.out.println(result3);System.out.println(result4);

最佳答案

    public static void main(String[] main){
         int adresslength = 3;
         String str = "009056737152"; System.out.println(str);
         int result = 0;
         for(int i=0;i<str.length();i+=adresslength){
             String subString = str.substring(i , i+adresslength);
             String nSString = new String();
             for(int j=subString.length()-1;j>=0;j--){
                 nSString += subString.charAt(j);
             }
             result+=Integer.valueOf(nSString);
         }
         System.out.println(result);
    }

您可以将地址长度更改为 2、4、5,并根据您的要求额外添加约束,例如地址长度将按字符串长度划分模块等。

关于java - 在每 x 位数字后拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50435466/

相关文章:

java - split 函数不返回

python - 如何从多个单词中获取第一个字母和 * 其余字母?

java - 如何在Java中分割和解析文本文件

java - 域类与 Dto 类与 Swagger 命名

java - 在 Java 中将 byte[] 转换为 String

java - 如何修复 GLSL 1.5 版和 ES 3.0 版之间的兼容性问题

python - 为什么从类实例返回的字符串保持 NoneType 类型,即使 IDLE 说它是一个字符串?

c - 如果字符指针指向的只读存储器不是连续的,那么它们如何工作?

java - SmartGWT - 重写 tranformRequest 和 transformResponse

java - 我可以在基于 Java 的 heroku 应用程序中使用 native 应用程序吗?