Java 提取字符串中的字符组
我有一个字符串Java 提取字符串中的字符组,java,Java,我有一个字符串123456789我还有一组数字(身份,如果你愿意的话),比如 2 1 1 1 2 2 2 1 1 1 3 1 2 1 1 2 1 2 2 1 1 2 2 1 2 1 1 3 1 1 其思想是,这些数字指定应从字符串中提取的数字组(如果重要的话,从左到右的顺序)。因此,像2 3 2 1 1这样的数字意味着输出前2个字符,然后是后3个字符,然后是后2个字符,然后是后1个字符,最后是剩余的最后1个字符。例如,211212应输出123456789211139应输出12345678921
123456789
我还有一组数字(身份,如果你愿意的话),比如
2 1 1 1 2 2
2 1 1 1 3 1
2 1 1 2 1 2
2 1 1 2 2 1
2 1 1 3 1 1
其思想是,这些数字指定应从字符串中提取的数字组(如果重要的话,从左到右的顺序)。因此,像2 3 2 1 1
这样的数字意味着输出前2个字符,然后是后3个字符,然后是后2个字符,然后是后1个字符,最后是剩余的最后1个字符。
例如,211212
应输出123456789
211139
应输出123456789
211212
应输出123456789
2112
应输出123456789
8.9
我试着使用方法charAt()
,但这似乎不适合我publicstaticvoidmain(字符串[]args){
字符串mine=“123456789”;
System.out.println(mine.charAt(2)+“\t”+mine.charAt(1)+“\t”+
mine.charAt(1)+“\t”+mine.charAt(1)+“\t”+mine.charAt(2)
+“\t”+mine.charAt(2));
}
上面给出了一个不需要的输出
3 2 2 2 3 3
如何解决这个(对我来说)相当棘手的问题?我已经对它进行了一次简单的尝试。下面给你一些帮助吗
public static void main(String[] args) {
int[][] identitiesBunch = new int[][] {
{2, 1, 1, 1, 2, 2},
{2, 1, 1, 1, 3, 1},
{2, 1, 1, 2, 1, 2},
{2, 1, 1, 2, 2, 1},
{2, 1, 1, 3, 1, 1}
};
String mine = "123456789";
char[] numbers = mine.toCharArray();
int index = 0;
for (int[] identities: identitiesBunch) {
for (int id: identities ) {
for (int i = 0 ; i < id; i++)
System.out.print(numbers[index++]);
System.out.print(' ');
}
index = 0;
System.out.println();
}
}
publicstaticvoidmain(字符串[]args){
int[][]identiesbunch=新int[][]{
{2, 1, 1, 1, 2, 2},
{2, 1, 1, 1, 3, 1},
{2, 1, 1, 2, 1, 2},
{2, 1, 1, 2, 2, 1},
{2, 1, 1, 3, 1, 1}
};
字符串mine=“123456789”;
char[]number=mine.toCharArray();
int指数=0;
for(int[]标识:identiesbunch){
for(int-id:identies){
for(int i=0;i
这应该可以帮你完成这项工作
public static void main(String[] args){
String identities = "2 1 1 1 3 1";
String stringToBreakApart = "123456789";
StringBuilder sb = new StringBuilder();
int currentPosition = 0;
for(String identityString : identities.split(" ")){
int identity = Integer.parseInt(identityString);
sb.append(stringToBreakApart, currentPosition, currentPosition += identity);
sb.append(" ");
}
System.out.println(sb.toString());
}
请注意,charAt()
返回单个字符。但在许多情况下,您需要2个或更多字符。要执行此操作,请签出substring()
。