我在我的程序中的一个点,我需要在通过另一个方法传递它之前在字符串中设置标记,我有它,所以每个第4个字符将有一个" |"插入,这是标记一个行中断。不是我想把每个字母都放在外面的标记之间" |"然后放一个","。这两个char数组方法不会在这里工作,否则我会尝试使用它,但我不是在寻找一个char数组。
public static String matrixFormatter(String x){
x = x.substring(0, 4) + "|" + x.substring(4, x.length());
return x;
}
到目前为止,这项工作有效,现在我想添加一个","在每个char之间,我认为下面的代码可以工作,这很容易,但我错了。
public static String matrixFormatter(String x){
for(int i = 0; i<=x.length(); i+=4){
for(int j = 0; j<=x.length(); i++){
x = x.substring(0, i) + "|" + x.substring(i, x.length());
x = x.substring(0, j) + "|" + x.substring(j, x.length());
}
}
return x;
}
答案 0 :(得分:0)
可以用一种方法完成:
public static String matrixFormatter(String x) {
List<String> chars = Arrays.asList(x.split(""));
String result = chars.get(0);
for (int i = 1; i < chars.size(); i++) {
if (i % 4 == 0)
result += "|" + chars.get(i);
else
result += "," + chars.get(i);
}
return result;
}
致电:
System.out.println(matrixFormatter("12345678"));
输出:
1,2,3,4|5,6,7,8
答案 1 :(得分:0)
我不确定我是否理解你的问题,你应该添加一些输入和预期输出更清晰。
String a = "abcdefghijklmnop";
String a2 = "";
for (int i = 0; i < a.length(); i++) {
if (i != 0) {
if(i % 4 == 0){
a2 += "|";
} else{
a2 += ",";
}
}
a2 += a.charAt(i);
}
System.out.println(a2);
这将产生输出a,b,c,d|e,f,g,h|i,j,k,l|m,n,o,p
答案 2 :(得分:0)
下面的代码在字符串中的字符之间添加“,”。
public static String matrixFormatter(String x){
String result;
for(int i = 0; i<x.length()-1; i++){
result += x.substring(i, i+1) + ",";
}
return result+",";
}
答案 3 :(得分:0)
试试这个正则表达式
s = s.replaceAll("(?<=.)(?=.)", ",");
答案 4 :(得分:0)
可以使用StringBuffer
以及Joiner
Guava
库完成:
public static void main(String[] args) {
String s = "example";
System.out.println(withBuilder(s));
System.out.println(withJoiner(s));
}
private static String withJoiner(String s) {
return Joiner.on(",").join(Chars.asList(s.toCharArray()));
}
private static String withBuilder(String s)
{
StringBuilder builder = new StringBuilder(s);
int index = 1;
for (int i = 0; i < s.length() ; i++)
{
builder.insert(index, ",");
index +=2;
}
return builder.toString();
}
输出是:
e,x,a,m,p,l,e,
e,x,a,m,p,l,e
答案 5 :(得分:0)
public static String matrixFormatter(String x) {
resultstr = "";
int i = 0;
while(i < x.length()) {
// If end of string: only add character.
if (i == x.length() - 1) {
resultstr += x.substring(i, i + 1);
} else {
if ( ((i + 1) % 4) == 0) {
resultstr += x.substring(i, i + 1) + "|";
} else {
resultstr += x.substring(i, i + 1) + ",";
}
}
i++;
}
return resultstr;
}
Haven没有安装Java,但是通过PHP代码测试了这个概念:
function matrixFormatter($x) {
$resultstr = "";
$i = 0;
while($i < strlen($x)) {
if ($i == strlen($x) - 1) {
$resultstr .= $x[$i];
} else {
if ( (($i + 1) % 4) == 0) {
$resultstr .= $x[$i] . "|";
} else {
$resultstr .= $x[$i] . ",";
}
}
$i++;
}
return $resultstr;
}
matrixFormatter(&#34; abcdefghijklmnopq&#34;)返回&#34; a,b,c,d | e,f,g,h | i,j,k,l | m,n,o,p | q&#34;