簡體   English   中英

如何在 java 中打印兩個字符串變量時刪除多余的空格

[英]How do i remove extra spaces while printing two string variables in java

  public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        int T = scan.nextInt();
        for ( int i=0; i<T ; i++)
        {
            String str = scan.next();

            int even =0 , odd =0, len = str.length();
            String str1=null, str2=null;

            char [] str_even = new char[50];
            char [] str_odd = new char[50];

            for ( int j=0 ; j<len ; j ++)
            {
                if ( j %2 ==0)
                {
                    str_even[even] = str.charAt(j);
                    even++ ;
             str1 = String.valueOf(str_even);
                }

                if (j%2!=0)
                {
                    str_odd[odd] = str.charAt(j);
                    odd++ ;
                    str2 = String.valueOf(str_odd);
                }
            }
           String output = str1+str2 ;
            System.out.print(output);

        }

        scan.close();
    }

如果輸入字符串是

Hacker
Rank

預期 output:

Hce akr
Rn ak

我的 Output:

Hce                          akr
                    Rn
a

看起來您正在將整個固定長度的char[]轉換為String ,但您只想要它的一部分。 幸運的是,有一個String.valueOf的三參數重載,它結合了substring

str1 = String.valueOf(str_even, 0, even);

看起來您還需要在 output 中添加一個分隔空間。

(並不是說代碼沒有其他一般性問題。)

如果你想刪除空格,有很多選擇。

// Remove spaces , tabs and returns
System.out.println(text.replaceAll("\\s",""));

// Remove spaces in the beginning and at the end
System.out.println(text.trim());

希望它有所幫助。

首先,您的 arrays 尺寸錯誤。 用這個:

        char [] str_even = new char[(len+1)/2];
        char [] str_odd = new char[len/2];

其次,您不需要在每次迭代時創建str1str2 在循環之后創建它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM