【问题标题】:How can I take each character from a string along with its position in Java?如何从字符串中获取每个字符及其在 Java 中的位置?
【发布时间】:2016-06-27 03:58:49
【问题描述】:

即。我的字符串是“pqrstuw”。我怎样才能得到“t”的位置 4. 我想编辑每个字符并改变它的位置。用Java可以吗?

【问题讨论】:

  • 是的。给五分钟,我给你示范。
  • How can I get " t" with its postion 4 - 查看 String API 以了解您可以使用的方法。 I want to edit each character and change its postion. - 查看 StringBuilder 类。
  • I want to edit each character and change its postion. Is it possible in Java? ...如果你提供一些例子会更好
  • 我认为您可以转换 String => 字符数组(通过使用 String 的 toCharArray() 方法),根据需要进行编辑并将字符数组转换回 String(通过使用 String' 构造函数)。跨度>

标签: java string position character


【解决方案1】:

您可以使用 for 循环并调用 String#charAt()... 这是零基索引处的字符,始终牢记字符串对象是不可变的。

【讨论】:

    【解决方案2】:

    假设字符串变量 'word' 包含您需要的内容。使用下面的代码打印其中的各种字符。还要添加需要的头文件(java.lang.String;)

    int size =  word.length();               // Get length of string
    
    for(int i =0 ; i<size ; i++) {  
        System.out.println(word.charAt(i));  // To print i+1'th letter
    }
    

    string_name.charAt(i) 将为您提供字符串中的第 'i+1' 个字符。在你的情况下,如果 word = "pqrstuvw",那么 word.charAt(3) 会给你't',它是字符串的第 4 个字符。至于你的第二个问题,你需要更清楚什么类型你想在你的问题中做的位置改变。

    以下是另一个类似问题的答案:“替换字符串中特定位置的字符。

    字符串在 Java 中是不可变的。您无法更改它们。

    您需要创建一个替换字符的新字符串。

     String myName = "domanokz";
     String newName = myName.substring(0,4)+'x'+myName.substring(5);
    

    或者您可以使用 StringBuilder:

     StringBuilder myName = new StringBuilder("domanokz");
     myName.setCharAt(4, 'x');
    
     System.out.println(myName);
    

    【讨论】:

      【解决方案3】:

      我们都知道String 是 JDK 中定义的不可变(最终)类。所以,不推荐在 Java 中操作字符串,也很舒服。

      在 Java 中操作字符串有两种简单的方法。

      1. 使用 StringBuilder 类。

      2. 使用String类的.charArray()方法更改为char数组。

      使用 StringBuilder 类

      StringBuilder 上的主要操作是 appendinsert 方法,它们被重载以便接受任何类型的数据。

      每个都有效地将给定数据转换为string,然后将该字符串的字符追加或插入string builder

      append 方法总是将这些字符添加到构建器的末尾; insert 方法在指定点添加字符。

      现在是代码

      String str = "pqrstuw";
      StringBuilder strBuild = new StringBuilder(str);
      strBuild.indexOf("t"); //return first index where t is found which is 4.
      strBuild.lastIndexOf("t"); //return last index where t is found which is 4.
      strBuild.getCharAt(4); // you will get t.
      strBuild.setCharAt(4,'v');
      strBuild.append("v"); append element at last.
      

      还有各种更重载的方法有StringBuilder 类。您可以按照自己的方式进行操作。

      使用字符数组

      String str = "pqrstuw";
      char [] arr_str = str.toCharArray(); //it convert your String into a char Array.
       //after manipulation you can change your char Array to String as like
      str = arr_str.toString();
      

      【讨论】:

        猜你喜欢
        • 2019-12-10
        • 1970-01-01
        • 1970-01-01
        • 2021-10-11
        • 1970-01-01
        • 1970-01-01
        • 2011-02-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多