先这样吧,感觉二维数组的计算比一维要费脑点,那三维,四维就更不必说了。。。。

import java.io.*;
import java.util.*;

public class ArraySort {

    public static void main(String[] args) {
        StringBuilder sb= new StringBuilder();
        List<String> listStr = new ArrayList<String>();
        String[] sourceWord = {"this", "fat", "two", "that", "fuck", "oaw"};
        String[][] sourceStr = {{"t", "h", "i","s"}, {"w", "a", "t", "s"}, {"o", "a", "h", "g"}, {"f", "g", "d", "t"}, {"g", "o", "a", "w"}};
        for(int i = 0; i < sourceStr.length; i++){

            for(int j = 0; j < sourceStr[i].length; j++) {
                sb.append(sourceStr[i][j]);
            }
            String sbStr = sb.toString();
            for (int k = 0; k < sourceWord.length; k++) {
                if (sb.indexOf(sourceWord[k]) != -1) {
                    System.out.println(sourceWord[k] + " at line " + (i+1) + " and index of " + (sb.indexOf(sourceWord[k])+1));
                }
            }
            sb.setLength(0);
        }

        for(int i = 0; i < sourceStr[i].length; i++){
            String [] singleSourceStr = sourceStr[i];

            for(int j = 0; j < sourceStr.length; j++) {
                sb.append(sourceStr[j][i]);
            }
            String sbStr = sb.toString();
            for (int k = 0; k < sourceWord.length; k++) {
                if (sb.indexOf(sourceWord[k]) != -1) {
                    System.out.println(sourceWord[k] + " at line " + (i+1) + " and index of " + (sb.indexOf(sourceWord[k])+1));
                }
            }
            sb.setLength(0);    

        }

        String[] oneArray = new String [sourceStr.length * sourceStr[0].length];
        for(int i = 0; i < sourceStr.length; i++){
            String [] singleSourceStr = sourceStr[i];
            for(int j = 0; j < singleSourceStr.length; j++) {
                oneArray[i * 4 + j] = sourceStr[i][j];
            }
        }

        for(int i = 0; i < oneArray.length; i++){
            int startInt = i + sourceStr.length + 1;
            if (startInt <  oneArray.length) {
                for (int j = 0 ; j < startInt ; j++) {
                    for (int k = j; k <  j + (sourceStr[0].length - (j % sourceStr[0].length) - (j / sourceStr[0].length)) * (sourceStr[0].length + 1); k += sourceStr[0].length + 1) {
                        //System.out.print(k + " ,");
                        sb.append(oneArray[k]);

                    }
                    listStr.add(sb.toString());
                    sb.setLength(0);
                }

            }

        }

        System.out.println(listStr);

        for (int i = 0; i < sourceStr.length; i++) {

            for (int j = 0; j < sourceStr[i].length ; j += 1) {
                System.out.print(sourceStr[i][j] + " ");
            }
            System.out.println();
        }
    }

}

时间: 2024-10-15 20:07:03

先这样吧,感觉二维数组的计算比一维要费脑点,那三维,四维就更不必说了。。。。的相关文章

将一个二维数组合并成一个一维数组

大家都知道php有内置的数组合并函数array_merage($arr,$arr1,$arr2,$arr3);那如何把一个二维数组如array(array('a'=>1,'b'=>2),array('c'=>3,'d'=>4)) 合并成如下的数组 array('a'=>1,'b'=>2,'c'=>3,'d'=>4);似乎,php目前还没有这样的内置函数吧,于是自己动手写了两种方法,仅供大家参考 第一种.方法当然是递归法呢,代码如下 <?php $new

从二维数组中计算某个字符串的出现频率

<?php $array=array( array("name","word","hello","haha"), array("user","push","array","pop"), array("code","course","content","public"

获取二维数组中的相同一维数组并记数

$a=array(      array(a,b,c), array(c,d,e), ); foreach($a as $k=>$v){ foreach($v as $value){ if(!in_array($value,$ids)) $ids[] = $value; } } foreach($a as $k=>$v){ foreach($v as $value){ foreach($ids as $key=>$id){ if($id == $value){ $res[$key]['i

二级指针与二维数组

最近看<Linux C程序设计大全>这本书,虽然书中有一些错误,但整体来说,书写得还算可以. 当看到网络编程[第23.2.4小节 获得主机信息]时,遇到了一段代码,原文如下: “一台主机有许多和网络相关的信息,例如,主机名称.IP地址.主机提供的服务等.这些信息一般都保存在系统中的某个文件里(例如/etc/hosts等),用户程序可以通过系统提供的函数读取这些文件上的内容.Linux环境下使用gethostent函数读取和主机有关的信息,该函数的原型如下: 1 #include <net

环形二维数组最大子数组的和

设计思路: 因为之前做过二维数组的和环形一维数组的,所以第一感觉就是能不能把这两种整改一下结合起来,所以采用的做法就是将二维环形变化为一维环形,在此采用的方法是从第一行开始,第一行计算出最大子数组,然后第一行和第二行相加为一维计算最大子数组,然后第一行.第二行和第三行,以此类推,最后将各子数组的最大值进行比较,得到最大的即为子数组和的最大值. 实验代码: //环形一维数组求最大子数组 package erwei; public class oneArray { private int i; pu

C++二维数组动态申请内存

好久没用C++刷题了,今天早上刷了几条题,感觉很陌生了.怪我,大二下实在太颓废了,没啥作为. 今天更新个关于c++二维数组内存申请的问题,当初作为菜鸟初学指针的时候,还是在这方面有点搞不通的.今天用到了,顺便写下来,适当时候给C++初学者用用. -----------C++二维数组动态申请内存-------------- 如果对new和delete不是很了解的话可以到这里来看看,http://www.cnblogs.com/hazir/p/new_and_delete.html 首先,我们一般需

二维数组首尾相连求最大子矩阵

源代码: #include<iostream>using namespace std;#include"math.h" void main(){    int N=5;    int M=5;    int n=-10;    int m=10;    int a[5][10];    int b[10];    int A=0;    int Max=0;    int MAX=0;    cout<<"请输入数组元素:";    for(

二维数组循环求出最大子数组

package shengcheng; import java.util.Scanner; import org.junit.Test; public class ErweiXunhuan { @Test public void fun() { int [][]a=new int[4][8]; Scanner write=new Scanner(System.in); for(int i=0;i<4;i++) { for(int j=0;j<4;j++) { a[i][j]=write.nex

《剑指Offer 1.二维数组中的查找》2019-03-25

剑指Offer  第一题 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 本人简单的解题思路  就是通过二重循环,遍历.查找数组中是否有目标数字,思路是简单的,但是有个小坑 ,就是没有进行数组越界判断 少判断了  array = [ [ ] ] 这种情况,最终通过的代码为 public class Solution { public bool