[英]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.