在Java中切换字符串的第一个和最后一个字母?

时间:2016-01-30 18:56:28

标签: java string

我必须编写一个方法来切换字符串的第一个和最后一个字母。例如,字符串“java”将变为“aavj”。

这是我到目前为止所做的:

import javax.swing.JOptionPane;

public class printTest {
    public static void main(String[] args) {
        String password;
        password = JOptionPane.showInputDialog("Please input your password");
        int length = password.length();
        String firstChar = password.substring(0, 1);
        String lastChar = password.substring(length - 1);

        password = lastChar + password + firstChar;
        JOptionPane.showMessageDialog(null, password);
    }
}

使用该代码,当我输入“java”时,我得到以下输出“ajavaj”,那么我该如何解决这个问题呢?我需要切换前两个字母,仍然有字符串的中间。我该怎么办?

6 个答案:

答案 0 :(得分:7)

您需要在此行上输入密码:

SELECT A.key, A.author,
       I.key, I."Type"
FROM   authorCollection AS A
JOIN   book AS I
ON  A.key = I.key AND I."TYPE" <> 'UNKNOWN';

答案 1 :(得分:3)

通过执行// Simple Call array(13) { [0]=> string(69) "/xampp/htdocs/WORK.htaccess" [1]=> string(73) "/xampp/htdocs/WORKConverter.php" [2]=> string(69) "/xampp/htdocs/WORKEvent.php" [3]=> string(70) "/xampp/htdocs/WORKdefault_filter.json" [4]=> string(68) "/xampp/htdocs/WORKdefault_filter.xml" [5]=> string(80) "/xampp/htdocs/WORKCaching/ApcCache.php" [6]=> string(84) "/xampp/htdocs/WORKCaching/CacheFactory.php" } // Regex Call array(13) { [0]=> string(69) "/xampp/htdocs/WORKEvent.php" [1]=> string(73) "/xampp/htdocs/WORKConverter.php" [2]=> string(80) "/xampp/htdocs/WORKCaching/ApcCache.php" [3]=> string(84) "/xampp/htdocs/WORKCaching/CacheFactory.php" } ,您将原始密码String与其他两个字符串连接起来,即password = lastChar + password + firstChar;&amp; lastChar。通过执行此操作,您实际上会获得一个新的字符串,其中firstCharlastChar已附加且未交换。

此外,字符串是不可变的,每次你试图操作它时,你最终都会创建一个新的字符串。您应该使用firstChar数组来避免此问题。

试试这段代码:

char

答案 2 :(得分:2)

我认为这应该可以解决问题:

import javax.swing.JOptionPane;
    public class printTest
    {
     public static void main(String[] args)
     {
     String password;
    password = JOptionPane.showInputDialog("Please input your password");
    int length = password.length();
      String password_changed = password.substring(1, password.length() - 1);
      String firstChar = password.substring(0,1);
      String lastChar = password.substring(length - 1);



      password =  lastChar +  password_changed + firstChar;
      JOptionPane.showMessageDialog(null, password);
     }
    }

你删除了密码变量的第一个和最后一个字母,你做了一个额外的字符串(在这个例子中是password_changed)。您可以使用该新变量在最后更改密码变量。

答案 3 :(得分:1)

char c[] = password.toCharArray();
char temp = c[0]
c[0] = c[password.length-1];
c[password.length-1] = temp;

你去,交换那两个字母。 c[0]将是您的第一个字母,您将其存储在temp变量中,然后使用c[0]中的c[password.length-1]修改MySQL(您的第一个字母)的值最后一个字母)然后使用临时变量

中的一个商店修改此值

答案 4 :(得分:1)

你获得第一个角色的方式是正确的,但不是中间或最后一个。这是一个显示所有三种情况的解决方案:

  String password = "123456789";
  int length = password.length();

  String firstChar = password.substring(0, 1);
  String middle = password.substring(1, length - 1);
  String lastChar = password.substring(length - 1, length);

  password = lastChar + " " + middle + " " + firstChar;
  System.out.println(password);

这将打印:

9 2345678 1

答案 5 :(得分:1)

与其他答案没什么不同,但另一种方式:

password = password.charAt(password.length() - 1)
           + password.substring(1, password.length() - 1)
           + password.charAt(0);