Java 数组与字符串相反。必须使用数组
如何用我制作的第一个数组的相反字母制作一个数组?例如,如果字符串是“Hello”,我想使用数组打印“olleH”。当我尝试返回变量时,它告诉我“字符串索引超出范围:-1”。谁能告诉我为什么?这是我目前的代码:Java 数组与字符串相反。必须使用数组,java,Java,如何用我制作的第一个数组的相反字母制作一个数组?例如,如果字符串是“Hello”,我想使用数组打印“olleH”。当我尝试返回变量时,它告诉我“字符串索引超出范围:-1”。谁能告诉我为什么?这是我目前的代码: public class april{ public static void main(String [] args){ System.out.println("What do you want backwards?"); System.out.println("Your new w
public class april{
public static void main(String [] args){
System.out.println("What do you want backwards?");
System.out.println("Your new word is " + reverse(IO.readString()));
}
public static String reverse(String original){
char [] letters = new char [original.length()];
char [] opp = new char [original.length()];
char c= 'a';
char d= 'a';
String word= " ";
String opposite= " ";
for (int x=0;x<original.length();x++){
c = original.charAt(x);
letters[x]= c;
if (x!=0){
d = original.charAt(-x-1);
opp[-x]=d;
}
else if (x==0){
d = original.charAt(-1);
opp[x]= d;
}
word += letters[x];
opposite += opp[x];
}
return word;
return opposite;
公共课{
公共静态void main(字符串[]args){
System.out.println(“您想要向后看什么?”);
System.out.println(“您的新词是”+reverse(IO.readString()));
}
公共静态字符串反转(字符串原始){
char[]字母=新字符[original.length()];
char[]opp=新字符[original.length()];
字符c='a';
chard='a';
字串=”;
字符串“”相反;
对于(int x=0;x您就接近了!对于第二个数组,您只需要从字符串的另一端开始(使用正确的语法):
for(int x=0;x
注意:您还必须减去1
,因为数组和字符串索引都是0索引的。很接近!您只需要从第二个数组的字符串的另一端开始(使用正确的语法):
for(int x=0;x
注意:您还必须减去1
,因为数组和字符串索引都是0索引的。我认为这是一种很好的方法
public class Main {
public static void main(String[] args) {
String reversed = reverse("Hello");
System.out.println(reversed);
}
private static String reverse(String word) {
byte[] array = word.getBytes();
int i = 0;
int j = array.length - 1;
byte tmp;
while (j > i) {
tmp = array[j];
array[j] = array[i];
array[i] = tmp;
j--;
i++;
}
return new String(array);
}
}
我认为这是一个很好的方法
public class Main {
public static void main(String[] args) {
String reversed = reverse("Hello");
System.out.println(reversed);
}
private static String reverse(String word) {
byte[] array = word.getBytes();
int i = 0;
int j = array.length - 1;
byte tmp;
while (j > i) {
tmp = array[j];
array[j] = array[i];
array[i] = tmp;
j--;
i++;
}
return new String(array);
}
}
您的方法接收一个字符串
,并返回另一个字符串
,因此您根本不需要使用数组,只需使用StringBuilder
类的reverse
方法即可
public static String reverse(String original) {
return new StringBuilder(original).reverse().toString();
}
您的方法接收一个字符串
,并返回另一个字符串
,因此您根本不需要使用数组,只需使用StringBuilder
类的reverse
方法即可
public static String reverse(String original) {
return new StringBuilder(original).reverse().toString();
}
我注意到的另一个问题是,对于负片,如果循环为零,我将无法打印出负片0,因为这样的东西不存在。我如何解决这个问题?可以使用StringBuilder&invoke reverse()关于它,我注意到的另一个问题是,对于负片,如果循环为零,我将无法打印出负片0,因为这样的东西不存在。我如何解决这个问题?你可以在它上使用StringBuilder&invoke reverse(),它一直告诉我“无法访问的语句”对于变量opposite@LotunKanji这与我的代码没有任何关系,但听起来你试图在定义的范围之外使用相反的。这到底是什么意思?@LotunKanji See:它一直在告诉我“无法到达的语句”对于变量opposite@LotunKanji这与我的代码没有任何关系,但听起来你试图在定义的范围之外使用相反的。这到底是什么意思?@LotunKanji看到: