将 2 个字符串转换为 2 个数组,结果奇数和偶数,number In java 7
convert 2 String to 2 Array, result Odd and Even,number In java 7
我有 2 个字符串 s=“Spring” 和 s2 = "Festival"。我想在 java 中分别打印 s 中的偶数字母和 s2 中的奇数字母。是还有另一种方法可以获得与我使用单个循环获得的结果相同的结果吗?
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class stringReview {
public static void main(String[] args) {
String s="Spring";
char arr[]=s.toCharArray();
for(int i=0;i<arr.length;i++){
if (i % 2 == 0) {
System.out.println("Data [" + i + "]=" + arr[i]);
}
}
String s2 = "Festival";
char arro[]=s2.toCharArray();
for (int j = 0; j<arro.length;j++){
if (j % 2 != 0) {
System.out.println("Data [" + j + "]=" + arro[j]);
}
}
}
}
result
Data [0]=S
Data [2]=r
Data [4]=n
Data [1]=e
Data [3]=t
Data [5]=v
Data [7]=l
像这样尝试。只需更改开始方式,然后增加 for 循环
String s="Spring";
char arr[]=s.toCharArray();
// start at 0 and increment by 2 gives evens.
for(int i = 0; i < arr.length; i += 2){
System.out.println("Data [" + i + "]=" + arr[i]);
}
String s2 = "Festival";
char arro[]=s2.toCharArray();
// start at 1 and increment by 2 gives odds.
for (int j = 1; j < arro.length; j += 2){
System.out.println("Data [" + j + "]=" + arro[j]);
}
不清楚你的输出顺序是否重要,我更喜欢一个循环而不是两个循环。首先找到较长输入单词的长度,我会使用 boolean
标志在偶数/奇数之间切换。我还认为没有必要将 String
实际转换为 char[]
。也就是说,像
String s1 = "Spring", s2 = "Festival";
int len = Math.max(s1.length(), s2.length());
boolean even = true;
for (int i = 0; i < len; i++) {
if (even && i < s1.length()) {
System.out.printf("Data[%d]=%c%n", i, s1.charAt(i));
} else if (!even && i < s2.length()) {
System.out.printf("Data[%d]=%c%n", i, s2.charAt(i));
}
even = !even;
}
产出
Data[0]=S
Data[1]=e
Data[2]=r
Data[3]=t
Data[4]=n
Data[5]=v
Data[7]=l
我有 2 个字符串 s=“Spring” 和 s2 = "Festival"。我想在 java 中分别打印 s 中的偶数字母和 s2 中的奇数字母。是还有另一种方法可以获得与我使用单个循环获得的结果相同的结果吗?
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class stringReview {
public static void main(String[] args) {
String s="Spring";
char arr[]=s.toCharArray();
for(int i=0;i<arr.length;i++){
if (i % 2 == 0) {
System.out.println("Data [" + i + "]=" + arr[i]);
}
}
String s2 = "Festival";
char arro[]=s2.toCharArray();
for (int j = 0; j<arro.length;j++){
if (j % 2 != 0) {
System.out.println("Data [" + j + "]=" + arro[j]);
}
}
}
}
result
Data [0]=S
Data [2]=r
Data [4]=n
Data [1]=e
Data [3]=t
Data [5]=v
Data [7]=l
像这样尝试。只需更改开始方式,然后增加 for 循环
String s="Spring";
char arr[]=s.toCharArray();
// start at 0 and increment by 2 gives evens.
for(int i = 0; i < arr.length; i += 2){
System.out.println("Data [" + i + "]=" + arr[i]);
}
String s2 = "Festival";
char arro[]=s2.toCharArray();
// start at 1 and increment by 2 gives odds.
for (int j = 1; j < arro.length; j += 2){
System.out.println("Data [" + j + "]=" + arro[j]);
}
不清楚你的输出顺序是否重要,我更喜欢一个循环而不是两个循环。首先找到较长输入单词的长度,我会使用 boolean
标志在偶数/奇数之间切换。我还认为没有必要将 String
实际转换为 char[]
。也就是说,像
String s1 = "Spring", s2 = "Festival";
int len = Math.max(s1.length(), s2.length());
boolean even = true;
for (int i = 0; i < len; i++) {
if (even && i < s1.length()) {
System.out.printf("Data[%d]=%c%n", i, s1.charAt(i));
} else if (!even && i < s2.length()) {
System.out.printf("Data[%d]=%c%n", i, s2.charAt(i));
}
even = !even;
}
产出
Data[0]=S
Data[1]=e
Data[2]=r
Data[3]=t
Data[4]=n
Data[5]=v
Data[7]=l