Java教程 目录

Java字符串操作示例程序

在本小节中,提供了一些java中的字符串程序,以帮助您提高编码技巧。请尝试自己解决这些问题再看答案,以便更好地学习。

在这些示例中也尝试使用java中引入的所有最新功能,例如Streamlambda表达式,功能接口等。

1. 如何在String中获取不同的字符及其计数?

------ ------------------
------ ---------------
------ --------------
------ ----------------------------

------ ----- ------------------ -

    ------ ------ ---- ------------- ----- -

        -----------------------------------
        --------------------------------------
        ------------------------------- ------ - -- ------
    -

    ------- ------ ---- ---------------------------------- ------ -
        ----------------- ----------- ----------------- - --- ------------------

        -- ------ ----------
        --- ----- - - --------------------
            -------------------------- -- --------------
        --------------------------------------

        -- ---------------------------------
        --------------------- ---- - ------------------------ ----- ------ --------------------------------

        ----------------------- ----- -------------------------- -- ---------------

        --------------------------------------

    -

-

2. 编写一个java程序来反转String

有很多方法可以反转String,一些常见的是:

  • 使用StringBuilder/StringBuffer类的reverse()方法;
  • 使用char/byte数组并反向遍历并填充结果字符串;

但是,如果不确定输入String内容,应该使用StringBuilder内置的reverse()方法。因为使用charbyte数组可能会产生不需要的结果。

------ ----- -------------- -

    ------ ------ ---- ------------- ----- -

        --------------------------
        ------------------------------ --------- -----
    -

    ------- ------ ---- ------------------------- ------ -
        ------------- -- - --- ---------------------
        ------ ------ - ------------------------
        ---------------------------
    -

-

3. 如何检查字符串是否是回文?

回文串是反向串也是相同的串。所以可以反转输入字符串并检查两个字符串是否相等。或者可以使用String charAt(int index)方法来检查回文串。

------ ----- ---------------- -

    ------ ------ ---- ------------- ----- -

        -----------------------------
        -------------------------------
        -------------------------------
    -

    ------- ------ ---- ---------------------------- ------ -
        ------- ------ - -----
        --- ------ - ---------------
        ------- ---- - ---- --------- ---- -
            ------------------ -- ------------------------- -
                ------ - ------
                ------
            -
        -
        ------------------------ - - -- ---------- - ----------

    -

-

4. 如何删除字符串中所有出现的给定字符?

String类中没有remove函数,但在这种情况下可以使用replaceAll()。这是一个简单的程序,演示了如何做到这一点。

------ ----- -------------------- -

    ------ ------ ---- ------------- ----- -

        ---------------------------------- -----
        --------------------------- -----
        ----------------------------- -----

    -

    ------- ------ ---- --------------------------- ------ ---- -- -
        ------ ------ - ----------------------------------- ----
        ---------------------------
    -

-

5. 如何以编程方式证明String是不可变的?

知道String在java中是不可变的,但新开发人员仍然对此感到困惑。试着理解这种混乱的原因。

------ -- - -------

-- - ---------

在上面的代码片段中,s1值已经改变,它是一个String对象。那么怎么能说String是不可变的呢?

要理解的最重要的一点是如何在java中创建字符串。当使用字符串文字创建String时,它不会更改原始String的值。它在字符串池中创建一个新的String并更改该变量的引用。所以原始字符串值永远不会改变,这就是字符串不可变的原因。

------ ----- ---------------------- -

    ------ ------ ---- ------------- ----- -

        ------ -- - ------- 
        ------ -- - ---

        --------------------- -- ----

        -- - --------- 

        --------------------- -- ---- 
        ----------------------- 

    -
-

6. 编写一个程序来计算字符串中的单词数量?

这个程序的简单解决方案似乎是input.split(" ").length,但是如果字符串没有正确格式化并且它包含前导和尾随空格,重复多个空格和制表符,这将不起作用。

幸运的是,String split()函数将正则表达式作为参数,可以使用它来计算字符串中的单词数。

------ ----- -------------------------- -

    ------ ------ ---- ------------- ----- -

        ---------------------- ---- -- ------
        --------------------- ---- ---- --------------
        -------------------- ----    --  ---   -------- ---------        ---- ---
    -

    ------- ------ ---- ------------------------- ----- -

        ------ ----------- - ------------
        --- ----- - --------------------- - - - ---------------------------------

        --------------------------
    -

-

7. 编写一个程序来检查是否创建了两个具有相同字符的字符串?

首先,必须从输入字符串创建一组字符。然后使用Set equals()方法检查它们是否包含相同的字符。这是一个简单的程序,用于检查是否使用相同的字符创建了两个字符串。

------ --------------
------ ----------------------------

------ ----- ---------------------- -

    ------ ------ ---- ------------- ----- -
        ----------------------- -------
        -------------------------- -------
        ------------------------ -------
        ---------------------- --------
        ------------------------ ------    
    -

    ------- ------ ---- ----------------------- --- ------ --- -

        -------------------- ---- - --------------------- ----- ------ -------------------------------
        -------------------- ---- - --------------------- ----- ------ -------------------------------
        --------------------------------------
    -

-

8. 读取两个String用户输入并检查是否第一个包含第二个?

这是一个简单的程序,可以使用String contains()方法来检查指定的字符串是否是此字符串的一部分。但是,需要使用Scanner类来读取用户输入。

------ ------------------

------ ----- ----------------------- -

    ------ ------ ---- ------------- ----- -
        ------- ------- - --- -------------------
        ------------------------- ----- ----------
        ------ -- - -------------------

        ------------------------- ------ ----------
        ------ -- - -------------------

        ----------------

        ------- ------ - --------------------------- ----
        ----------------------- -------- ------ - ----------
    -

    ------- ------ ------- ------------------------------ ------- ------ ---------- -
        ------- ------ - ------
        ------ - ---------------------------
        ------ -------
    -

-

执行上面示例代码,得到以下结果 -

----- ----- -------
---
----- ------ -------
--
--- -------- -- - ----

9. 如何在不使用第三个变量的情况下交换两个字符串?

可以使用String substring()方法来完成它。下面是一个简单的演示代码片段:

------ -- - ------
------ -- - ------

-- - --------------
-- - ----------------------------------------
-- - --------------------------

如果必须写一个函数来做这件事怎么办? 由于String是不可变的,因此方法结束后方法中String引用的值的更改将消失。此外,无法从java中的方法返回多个对象。因此,必须创建一个容器来保存输入字符串,然后在方法中执行上述逻辑。下面的代码显示了如何做到这一点,虽然它可能看起来很复杂,但逻辑与上面相同。

------- ---------------------------

------ ------------------

------ ----- -------------- -

    ------ ------ ---- ------------- ----- -

        --------- --------- - --- ------------
        ------- ------- - --- -------------------
        ------------------------- ----- ----------
        ---------------------------------------------

        ------------------------- ------ ----------
        ----------------------------------------------
        ----------------
        ------------------------------
        --------- - -----------------------
        ------------------------------
    -

    ------- ------ --------- --------------------- ---------- -
        ----------------------------------------------------------------------------------------- ---- - -----
        ----------------------------------------------------------------- --------------------------------------------------------------------------- -- -----
        -----------------------------------------------------------------------------------------------------
        ------ ----------
    -

-

----- ----------
    ------- ------ ------------
    ------- ------ -------------

    ------ ------ ---------------- -
        ------ ------------
    -
    ------ ---- --------------------- ------------ -
        ---------------- - ------------
    -
    ------ ------ ----------------- -
        ------ -------------
    -
    ------ ---- ---------------------- ------------- -
        ----------------- - -------------
    -

    ---------
    ------ ------ ---------- -
        ------ ------ ------ - ---------------- ------ ------ - ---------------
    -
-

执行上面示例代码,得到以下结果 -

----- ----- -------
----
----- ------ -------
------
----- ------ - ----- ------ ------ - ------
----- ------ - ------- ------ ------ - ----

10. 编写一个程序,从输入字符串中找出第一个非重复字符?

参考示例代码

------- ---------------------------

------ --------------------
------ ---------------

------ ----- -------------------- -

    ------ ------ ---- ------------- ----- -

        ---------------------------------------------------------------
        -------------------------------------------------------
        ------------------------------------------------------

    -

    ------- ------ --------- --------------------------------- ------- -
        ------ ----- - ---------------------

        --------------------- -------------- - --- --------------------

        --- ---- - - -- - ---- ------------- ---- -
            ---- - - ---------

            -- ----------------------------
                ---------

            --- ---- - - - - -- - ---- ------------- ---- -
                -- -- -- --------- - -- ----- -----
                    ----------------------
                    ------
                - ---- -- -- -- ------------ - -- - -- -- ----- ----- ---- ---
                    ------ --
                -
            -
        -
        ------ -----
    -

-

上一篇:Java字符串连接
下一篇:Java 数组