首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“熔断”2串

“熔断”2串
EN

Stack Overflow用户
提问于 2022-11-28 22:20:06
回答 1查看 37关注 0票数 0

我遇到了一个练习,根据给定字符串的长度,我必须添加一些空格。这是我的代码:

代码语言:javascript
复制
    public static void main(String[] args) {
        final String[] NAMES = {"Spa reine 25cl","Bru plate 50cl","Bru pét 50cl",
                "Pepsi","Spa orange", "Schweppes Tonic","Schweppes Agr","Ice Tea","Ice Tea Pêche",
                "Jus d'orange Looza", "Cécémel", "Red Bull"};
        int[][] stock = {{1,56,200,55},{2,42,200,60},{3,62,200,125},{4,45,200,150},{5,25,200,140},{6,72,200,86},{7,40,200,47},{8,48,200,80},{9,24,150,75},{10,36,200,90},{11,15,100,55},{12,25,80,23}};
        
        for(int i = 0; i<NAMES.length;i++) {
            String space1 = placeNumberToRank(NAMES[i], Integer.toString(stock[i][1]), 35);
            String space2 = placeNumberToRank(NAMES[i], Integer.toString(stock[i][2]), 40);
            String space3 = placeNumberToRank(NAMES[i], Integer.toString(stock[i][3]), 45);
            System.out.println(space1);
            System.out.println(space2);
            System.out.println(space3);
            }
            
        }
    public static String placeNumberToRank(String originalStr, String numberToPlace, int rank) {
        int numberOfSpaces = 0;
        numberOfSpaces = rank - originalStr.length() - numberToPlace.length();
        return originalStr+" ".repeat(numberOfSpaces)+numberToPlace;
    }
}

我需要的结果是:(注意,最后一个数字是对齐的)

代码语言:javascript
复制
Spa reine 25cl                   56  200   55
Bru plate 50cl                   42  200   60
Bru pét 50cl                     62  200  125
Pepsi                            45  200  150
Spa orange                       25  200  140
Schweppes Tonic                  72  200   86
Schweppes Agr                    40  200   47
Ice Tea                          48  200   80
Ice Tea Pêche                    24  150   75
Jus d'orange Looza               36  200   90
Cécémel                          15  100   55
Red Bull                         25   80   23

我目前的结果是:

代码语言:javascript
复制
Spa reine 25cl                   56
Spa reine 25cl                       200
Spa reine 25cl                             55
Bru plate 50cl                   42
Bru plate 50cl                       200
Bru plate 50cl                             60
Bru pét 50cl                     62
Bru pét 50cl                         200
Bru pét 50cl                              125
Pepsi                            45
Pepsi                                200
Pepsi                                     150
Spa orange                       25
Spa orange                           200
Spa orange                                140
Schweppes Tonic                  72
Schweppes Tonic                      200
Schweppes Tonic                            86
Schweppes Agr                    40
Schweppes Agr                        200
Schweppes Agr                              47
Ice Tea                          48
Ice Tea                              200
Ice Tea                                    80
Ice Tea Pêche                    24
Ice Tea Pêche                        150
Ice Tea Pêche                              75
Jus d'orange Looza               36
Jus d'orange Looza                   200
Jus d'orange Looza                         90
Cécémel                          15
Cécémel                              100
Cécémel                                    55
Red Bull                         25
Red Bull                              80
Red Bull                                   23

该练习要求调用该方法3次,并需要返回originalStr +空格。有办法把所有东西“融合”在一起吗?

EN

回答 1

Stack Overflow用户

发布于 2022-11-28 23:09:01

您应该像这样使用printf()而不是println()

%-30s编辑左对齐字符串的宽度为30个字符。%4d编辑整数4字符宽,右对齐。%n是一个操作系统特有的换行符.

代码语言:javascript
复制
for (int i = 0; i < NAMES.length; i++) {
    System.out.printf("%-30s %4d %4d %4d%n",
        NAMES[i], stock[i][1], stock[i][2], stock[i][3]);
}

产出:

代码语言:javascript
复制
Spa reine 25cl                   56  200   55
Bru plate 50cl                   42  200   60
Bru pét 50cl                     62  200  125
Pepsi                            45  200  150
Spa orange                       25  200  140
Schweppes Tonic                  72  200   86
Schweppes Agr                    40  200   47
Ice Tea                          48  200   80
Ice Tea Pêche                    24  150   75
Jus d'orange Looza               36  200   90
Cécémel                          15  100   55
Red Bull                         25   80   23
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74607078

复制
相关文章

相似问题

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