可以说我有一个字符串:“救火车”。然后,我将该字符串分成单个字母,然后将它们放入名为T的数组中。所以现在T []看起来像{f,i,r,e,t,r,u,c,k}。我如何只打印偶数字符,以便我的打印语句看起来像“ frtuk”,而奇数看起来像“ ierc”。这是我到目前为止所得到的:
import java.util.Scanner;
import java.util.Arrays;
public class StringFun {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String even_odd = sc.next();
char[] t = even_odd.toCharArray();
System.out.println(Arrays.toString(t));
//I can't get this next part to work.
for(int i = t[0]; i < t.length; i = i + 2){
System.out.println(Arrays.toString(t[i]));
}
}
}
只是代码中的一个小错误:
您不需要数组中的第一个值来初始化循环变量i
,只需要您要循环开始的索引值即可。
一个棘手的事情要记住的是,索引从0开始,但我们人类从1数(我没有在回答的第一个编辑这个错误太)因此与characterss甚至序将打印时起始值是奇数。
索引编制的开始是一个非常常见的问题,必须牢记在心...
另外,您可以直接打印字符,这里不需要Arrays.toString()方法:
System.out.println(t[index]);
足够。
奇数字符:设置i
为0:这将打印第1、3 ...个字符
for(int i = 0; i < t.length; i = i + 2){
System.out.println(t[i]);
}
偶数字符:设置i
为1:将打印第2个,第4个...字符
for(int i = 1; i < t.length; i = i + 2){
System.out.println(t[i]);
}
另外,您甚至不需要创建char数组,可以为此使用String.charAt(int index):
String even_odd = sc.next();
for(int i = 0; i < even_odd.length(); i = i + 2){
System.out.println(even_odd.charAt(i));
}
另外,要特别好,您可以将其提取为一个函数,然后重用该函数:
private static void printChars(String input, boolean even) {
int i = 0;
if(even) { //if we need the even chars, start from 1;
i=1;
}
for(; i < input.length(); i = i + 2){
System.out.println(input.charAt(i));
}
}
然后您的主要方法将是这样的:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String even_odd = sc.next();
char[] t = even_odd.toCharArray();
System.out.println(Arrays.toString(t));
//calling the function for even numbers
printChars(even_odd, true);
//calling the function for odd numbers
printChars(even_odd, false);
}
记住重复是不好的。重用->很好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句