我想做的事情:给定一个来自用户的字符串,将上半部分与下半部分交换。如果字符串长度为奇数,则取较低的前半部分并交换。如果字符串长度为1,请不要管它。 例如:
输入:abcde
输出:cdeab
不知道如何在java中完全处理字符串!我在这里失去了信心..
import java.util.*;
class Swap {
public static void main (String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter a string");
String s = in.nextLine();
int length = s.length();
System.out.println(length);
int x = length/2;
if (x % 2 = 0) {
for (int i =0; i<x; i++) {
String s[] array1 ;
}
}
}
}
答案 0 :(得分:0)
您可以尝试此代码。这是按照您提到的条件交换字符串。
import java.util.*;
class Swap {
public static void main (String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter a string");
String s = in.nextLine();
int length = s.length();
System.out.println("The length is:-"+length);
int l=length/2;
String st="",sw="";
for(int i=0;i<l;i++)
st+=s.charAt(i);
for(int j=l;j<length;j++)
sw+=s.charAt(j);
System.out.println("The new string is:-"+sw+st);
}
}
答案 1 :(得分:0)
为了交换字符串,首先使用整数变量l将字符串分成两部分。整个事物的编程方式使得字符串的前半部分存储在字符串变量st和另一部分中。字符串变量sw中的一半。在循环中,第一个循环迭代发生在字符串的前半部分,并且在每次迭代中,字符串前半部分的每个字符都被添加到字符串变量s1中。一半的字符串存储在变量st中。 类似地,在第二个循环中,我们遍历字符串的下一半,并且字符串的另一半在类似的过程之后存储在字符串变量sw中。 然后,在语句的前半部分之前打印字符串的后半部分 System.out.println(&#34;新字符串是: - &#34; + sw + st);这就是字符串的交换方式。
答案 2 :(得分:0)
这是我能为它编写的最有效的代码。适用于奇数和偶数长度的字符串。
String myString = "abcdef";
String newString;
int split = myString.length() / 2;
newString = myString.substring(split);
myString = myString.substring(0, split);
newString = newString + myString;
return newString;
它本质上做的是将字符串分成两部分,然后将这些部分向后添加到一个新字符串中。所以下半场成为上半场,第一场现在是下半场。
您当然可以通过用户输入或任何方法来定义myString。