gpt4 book ai didi

java - 如何从数组内部的字符串创建回文

转载 作者:行者123 更新时间:2023-12-02 00:59:31 24 4
gpt4 key购买 nike

我应该将数组 arr 的每个元素更改为回文。

我尝试过创建一个 for 循环来创建一个新数组,并创建另一个 for 循环来从数组的元素中创建回文,但显然它并没有真正起作用。

  public static String [] changeArrayToPalindrome(String [] arr){
int length =arr.length;
String[]newarray= new String[length];
for(int i=0; i<length; i++){
String a=arr[i];
int n=a.length();
if(a==null){
System.out.println("null");
}
else if(a.equals("")){

System.out.println("");
}


String newString="";
for(int j=0; j<=n/2-1; j++){

newString+=a.charAt(j);
newString+=a.charAt(n/2+j);

newarray[j]=newString;
}

}
return newarray;
}

测试者是

String [] array={"street", null, "break", "oha", "", "pit", null,"atOyotA"};
System.out.println(Arrays.toString(changeArrayToPalindrome(array)));

应该打印出来

  //[street, null, break, oha, , pit, null, atOyotA]
//[strrts, null, brerb, oho, , pip, null, atOyOta]

我知道我不应该将 System.out.println 用于 null 或空字符串,但我不知道如何将其作为 return 语句。

任何有助于实现任务目的的帮助将不胜感激。

最佳答案

您的代码可以更新为此。

import java.util.Arrays;

public class Test {

public static String [] changeArrayToPalindrome(String [] arr){
int length =arr.length;
String[]newarray= new String[length];
for(int i=0; i<length; i++){
String a=arr[i];

if(a==null){
newarray[i]=null;
}
else if(a.equals("")){
newarray[i]="";
} else {
int n=a.length();
String newString="";
if (n%2==0) {
//for even
newString=a.substring(0,n/2);
} else {
newString=a.substring(0,n/2+1);
}


for(int j=n/2-1; j>=0; j--){
newString+=a.charAt(j);

}
newarray[i]=newString;
}

}
return newarray;
}

public static void main(String[] args) {
String [] array={"street", null, "break", "oha", "", "pit", null,"atOyotA"};
System.out.println(Arrays.toString(changeArrayToPalindrome(array)));

}

}

关于java - 如何从数组内部的字符串创建回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57781083/

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