用Java交换字符串。 Java初学者

时间:2014-10-28 19:21:11

标签: java string

我想做的事情:给定一个来自用户的字符串,将上半部分与下半部分交换。如果字符串长度为奇数,则取较低的前半部分并交换。如果字符串长度为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 ;
            }
        }
    }
}

3 个答案:

答案 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。