欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java如何交換字符串中兩個位置的值

 更新時間:2023年06月14日 14:42:15   作者:騰陽山泥若  
這篇文章主要介紹了Java如何交換字符串中兩個位置的值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Java交換字符串中兩個位置的值

需求:

對一字符串abcd,要求交換位置0和位置2的兩個字符,交換結(jié)果為cbad。

java高效實現(xiàn)方案

先將String轉(zhuǎn)換為char數(shù)組,數(shù)組可以修改任意位置的值,進行常規(guī)的數(shù)組交換即可

public static void main(String[] args) {
    String str = "abcd";
    int i = 0, j = 2;
    char[] strArray = str.toCharArray(); // 轉(zhuǎn)換成數(shù)組
    char temp = strArray[i];
    strArray[i] = strArray[j];
    strArray[j] = temp;
    str = String.valueOf(strArray);
    System.out.println(str);
}

Java以字符串某一位置為界,將它之前的部分與之后的部分互換位置

需求:

給定一個字符串str和一個整數(shù)i,i代表字符串中某一個元素的下標,將str[0..i-1]移到這個元素的右側(cè),將str[i+1..len(str)-1]移到這個元素的左側(cè)。

(要求:時間復(fù)雜度為O(N),空間復(fù)雜度為O(1))。

實現(xiàn)思路

以分割數(shù)為界,分為左側(cè)和右側(cè),分別將左側(cè)和右側(cè)的字符串進行反轉(zhuǎn),然后將左側(cè)和右側(cè)分別看成一個整體,將左側(cè)和右側(cè)進行反轉(zhuǎn)。

測試用例樣例 

  • 輸入:”abcde”, 2 
  • 預(yù)期結(jié)果: decab

下面是Java代碼的實現(xiàn):

public class TestReverse {
    public static void main(String[] args) {
        String str = "abcde";
        System.out.println(replaceBeginAndEnd(str, 2));
    }
    public static String replaceBeginAndEnd(String str, int i) {
        if (str == null || i < 0 || str.length() <= i) {
            return str;
        }
        char[] chars = str.toCharArray();
        reverseCharArray(chars, 0, i - 1);
        reverseCharArray(chars, i + 1, chars.length - 1);
        reverseCharArray(chars, 0, chars.length - 1);
        return new String(chars);
    }
    private static void reverseCharArray(char[] chars, int begin, int end) {
        char temp;
        while (begin < end) {
            temp = chars[begin];
            chars[begin] = chars[end];
            chars[end] = temp;
            begin++;
            end--;
        }
    }
}

輸出結(jié)果為:

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python使用in操作符時元組和數(shù)組的區(qū)別分析

    python使用in操作符時元組和數(shù)組的區(qū)別分析

    有時候要判斷一個數(shù)是否在一個序列里面,這時就會用到in運算符來判斷成員資格,如果條件為真時,就會返回true,條件為假時,返回一個flase。這樣的運算符叫做布爾運算符,其真值叫做布爾值。
    2015-05-05
  • python獲取文件路徑、文件名、后綴名的實例

    python獲取文件路徑、文件名、后綴名的實例

    下面小編就為大家分享一篇python獲取文件路徑、文件名、后綴名的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • torchtext入門教程必看,帶你輕松玩轉(zhuǎn)文本數(shù)據(jù)處理

    torchtext入門教程必看,帶你輕松玩轉(zhuǎn)文本數(shù)據(jù)處理

    這篇文章主要介紹了torchtext入門教程必看,帶你輕松玩轉(zhuǎn)文本數(shù)據(jù)處理,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python中numpy?常用操作總結(jié)

    python中numpy?常用操作總結(jié)

    這篇文章主要介紹了python中numpy常用操作總結(jié),NumPy是Python語言的一個擴充程序庫,支持大量高維度數(shù)組與矩陣運算,此外也針對數(shù)組運算提供大量的數(shù)學函數(shù)庫
    2022-09-09
  • 使用Python進行圖像裁剪和直方圖分析

    使用Python進行圖像裁剪和直方圖分析

    在數(shù)字圖像處理領(lǐng)域,裁剪和分析圖像的直方圖是兩個非?;厩抑匾牟僮?本文將通過一個簡單的Python項目,展示如何使用skimage和matplotlib庫來裁剪圖像并分析其RGB通道的直方圖,感興趣的小伙伴跟著小編一起來看看吧
    2025-01-01
  • 如何使用pyinstaller打包多個和單個python文件詳解

    如何使用pyinstaller打包多個和單個python文件詳解

    最近需要將python寫的程序打包分發(fā)給其他同事使用,下面這篇文章主要給大家介紹了關(guān)于如何使用pyinstaller打包多個和單個python文件的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • python字符串string的內(nèi)置方法實例詳解

    python字符串string的內(nèi)置方法實例詳解

    這篇文章主要介紹了python字符串string的內(nèi)置方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-05-05
  • python?+?pyqt5制作一個串口助手

    python?+?pyqt5制作一個串口助手

    這篇文章主要介紹了python?+?pyqt5制作一個串口助手,串口助手是串口通信使用的工具,為整合知識,打算做個串口助手,本文給大家講解的非常詳細,需要的朋友可以參考下
    2023-04-04
  • vscode 遠程調(diào)試python的方法

    vscode 遠程調(diào)試python的方法

    本篇文章主要介紹了vscode 遠程調(diào)試python的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • 對pandas中apply函數(shù)的用法詳解

    對pandas中apply函數(shù)的用法詳解

    下面小編就為大家分享一篇對pandas中apply函數(shù)的用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04

最新評論