gpt4 book ai didi

java - 用逗号分割字符串并将所有分割字符串居中

转载 作者:行者123 更新时间:2023-12-02 09:45:53 26 4
gpt4 key购买 nike

尝试用逗号分割字符串然后将所有已分割的字符串居中时遇到问题。

我尝试使用这里的答案分割字符串 https://stackoverflow.com/a/8368917

public static String split (String str) {
StringBuilder stringBuilder = new StringBuilder(str);
String[] strings = stringBuilder.toString().split(",");

for(int i = 0; i < strings.length; i++){
strings[i] = strings[i].trim();
strings[i] += ",\n";
}

stringBuilder = new StringBuilder();
for (String string : strings) {
stringBuilder.append(string);
}

// Remove last separator
if (stringBuilder.length() > 0) {
stringBuilder.setLength(stringBuilder.length() - ",\n".length());
}

return stringBuilder.toString();
}

这里是中心字符串(忘记来源来自哪里)

public static String center (String str, int length) {
if (str.length() > length) {
return str.substring(0, length);
} else if (str.length() == length) {
return str;
} else {
int leftPadding = (length - str.length()) / 2;
StringBuilder leftBuilder = new StringBuilder();
for (int i = 0; i < leftPadding; i++) {
leftBuilder.append(" ");
}

int rightPadding = length - str.length() - leftPadding;
StringBuilder rightBuilder = new StringBuilder();
for (int i = 0; i < rightPadding; i++) {
rightBuilder.append(" ");
}

return leftBuilder.toString() + str + rightBuilder.toString();
}
}

这是我尝试做的事情

String STR;
STR = STR + String.format("%1$48s", center(split(Address), 48)) + "\n";
System.out.println(STR);

预期结果

        Street Road Patta 55,
053888 Alur Satta,
Keidaj

实际结果

   Street Road Patta 55,
053888 Alur Satta,
Keidaj

最佳答案

您对字符串的拆分会产生一个字符串。您应该将字符串拆分为 N 个字符串(行),然后将每行居中:

import java.util.stream.Stream;

public class Center {

public Center() {
}

public static String center (String str, int length) {
if (str.length() > length) {
return str.substring(0, length);
} else if (str.length() == length) {
return str;
} else {
int leftPadding = (length - str.length()) / 2;
StringBuilder leftBuilder = new StringBuilder();
for (int i = 0; i < leftPadding; i++) {
leftBuilder.append(" ");
}

int rightPadding = length - str.length() - leftPadding;
StringBuilder rightBuilder = new StringBuilder();
for (int i = 0; i < rightPadding; i++) {
rightBuilder.append(" ");
}

return leftBuilder.toString() + str + rightBuilder.toString();
}
}

public static void main(String[] args) {

String input = "Street Road Patta 55,053888 Alur Satta,Keidaj";

Stream.of(input.split(",")).map(line -> center(line, 48)).forEach(System.out::println);

}

}

输出:

              Street Road Patta 55              
053888 Alur Satta
Keidaj

相同,但没有 lambda

public static void main(String[] args) {

String input = "Street Road Patta 55,053888 Alur Satta,Keidaj";

final String[] lines = input.split(",");
for(String line : lines) {
System.out.println(center(line, 48));
}

}

呵呵!

关于java - 用逗号分割字符串并将所有分割字符串居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56663104/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com