[英]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];
其次,您不需要在每次迭代時創建str1
和str2
。 在循環之后創建它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.