How to search a char in 2d array any direction

the method will take a string argument and convert them into char and try to find them in a 2d array.
It is more like a word puzzle(wordSearcher).Here's what i've done so far...
public void find(String word)
for(int a = 0; a < word.length(); a++) {
char oneChar = word.charAt(a);
String oneStringchar = String.valueOf(oneChar);
// Searching through in South Direction
for(int i = 0; i < g.length; i++) {
for(int j = 0 ; j < g.length ; j++) {
if (oneChar == g[j]) {
canvas.draw(oneStringchar, (i * WORD_SIZE) + POS_X, (j * WORD_SIZE) + POS_Y);
}

   // Searching through in South Direction
   for(int i = 0; i < g.length; i++) {
      for(int j = 0 ; j < g.length ; j++) {
if (oneChar == g[i][j]) {
canvas.draw(oneStringchar, (i * WORD_SIZE) + POS_X, (j * WORD_SIZE) + POS_Y);

Similar Messages

  • Searching a char in 2d array any direction

    the method will take a string argument and convert them into char and try to find them in a 2d array.
    It is more like a word puzzle(wordSearcher).Here's what i've done so far...
    public void find(String word)
    for(int a = 0; a < word.length(); a++) {
    char oneChar = word.charAt(a);
    String oneStringchar = String.valueOf(oneChar);
    // Searching through in South Direction
    for(int i = 0; i < g.length; i++) {
    for(int j = 0 ; j < g.length ; j++) {
    if (oneChar == g[j]) {
    canvas.draw(oneStringchar, (i * WORD_SIZE) + POS_X, (j * WORD_SIZE) + POS_Y);
    }

    Here's something I did a while back, type in any text in the top text area (ensure it's a grid eg 8 x 8),
    then the words to find (one per line) in the lower text area. If found, the co-ords of the word are displayed.
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    class WordFinder extends JFrame implements ActionListener
      private static JButton goBtn = new JButton("Search");
      private static JTextArea taLetters = new JTextArea(10,25);
      private static JTextArea taWords = new JTextArea(10,25);
      private static int base = 0;
      private static String letters = "";
      private static String words[];
      private static boolean match = false;
      private static String taWordsNewText = "";
      public static void main(String args[])
        WordFinder wf = new WordFinder();
      public WordFinder()
        super("Word Finder");
        setSize(300,80);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
        Container frame = getContentPane();
        frame.setLayout(new BorderLayout());
        JScrollPane spLetters = new JScrollPane (taLetters);
        JScrollPane spWords = new JScrollPane (taWords);
        goBtn.addActionListener(this);
        JPanel mid = new JPanel(new FlowLayout());
        JLabel infoLbl = new JLabel("'letters' above, 'words to find' below");
        mid.add(infoLbl);
        mid.add(goBtn);
        frame.add(spLetters,BorderLayout.NORTH);
        frame.add(mid,BorderLayout.CENTER);
        frame.add(spWords,BorderLayout.SOUTH);
        pack();
        setContentPane(frame);
      public void actionPerformed(ActionEvent ae)
        letters = "";
        taWordsNewText = "";
        if(lettersAndWordsOK()) findTheWords();
      private static boolean lettersAndWordsOK()
        StringTokenizer st = new StringTokenizer(taLetters.getText(),"\n");
        int count = st.countTokens();
        if(count == 0)
          JOptionPane.showMessageDialog(null,
            "no letter details entered");
          return false;
        String line = "";
        while(st.hasMoreTokens())
          line = st.nextToken();
          if(line.length() != count)
            JOptionPane.showMessageDialog(null,
            "check letters - not a perfect grid \n e.g. 8 x 8");
            return false;
          else
            letters = letters + line;
        st = new StringTokenizer(taWords.getText(),"\n");
        words = new String[st.countTokens()];
        if(words.length > 0)
          for(int i = 0; i < words.length; i++)
            words[i] = st.nextToken();
        else
          JOptionPane.showMessageDialog(null,
            "no listing for words to find");
            return false;
        base = count;
        return true;
      private static void findTheWords()
        for(int i = 0; i < words.length; i++)
          int ii;
          for(ii = 0; ii < letters.length(); ii++)
            match = false;
            if(letters.substring(ii,ii+1).equals(words.substring(0,1)))
    checkNextLetter(ii,0,1,words[i]);
    if(match)break;
    if(ii == letters.length()) taWordsNewText += words[i]+" (not found)\n";
    taWords.setText(taWordsNewText);
    private static void checkNextLetter(int currentPos, int direction,
    int textPos,String wordToFind)
    if(direction == 0)
    int directions[] = {-(base+1),-base,-(base-1),-1,1,base-1,base,base+1};
    for(int x = 0; x < directions.length;x++)
    checkNextLetter(currentPos,directions[x],textPos,wordToFind);
    if(match) break;
    else
    int nextPos = currentPos + direction;
    if(letters.substring(currentPos,currentPos+1).equals(
    wordToFind.substring(textPos-1,textPos)))
    if(textPos == wordToFind.length())
    match = true;
    String startCoords = "("+(currentPos - (direction*
    (wordToFind.length()-1)))/base+","+(currentPos - (direction*
    (wordToFind.length()-1)))%base +")";
    String endCoords = "("+(currentPos/base)+","+(currentPos%base)+")";
    taWordsNewText += wordToFind+" "+startCoords+" - "+endCoords+"\n";
    return;
    else if(nextPos >= 0 && nextPos < Math.pow(base,2) &&
    Math.abs(currentPos%base - nextPos%base) <= 1)
    checkNextLetter(nextPos,direction,textPos+1,wordToFind);

  • How to search for particular string in array?

    I am struggling to figure out how to search array contents for a string and then delete the entry from the array if it is found.
    The code for a program that allows the user to enter up to 20 inventory items (tools) is posted below; I apologize in advance for it as I am also not having much success grasping the concept of OOP and I am certain it is does not conform although it all compiles.
    Anyway, if you can provide some assistance as to how to go about searching the array I would be most grateful. Many thanks in advance..
    // ==========================================================
    // Tool class
    // Reads user input from keyboard and writes to text file a list of entered
    // inventory items (tools)
    // ==========================================================
    import java.io.*;
    import java.text.DecimalFormat;
    public class Tool
    private String name;
    private double totalCost;
    int units;
      // int record;
       double price;
    // Constructor for Tool
    public Tool(String toolName, int unitQty, double costPrice)
          name  = toolName;
          units = unitQty;
          price = costPrice;
       public static void main( String args[] ) throws Exception
          String file = "test.txt";
          String input;
          String item;
          String addItem;
          int choice = 0;
          int recordNum = 1;
          int qty;
          double price;
          boolean valid;
          String toolName = "";
          String itemQty = "";
          String itemCost = "";
          DecimalFormat fmt = new DecimalFormat("##0.00");
          // Display menu options
          System.out.println();
          System.out.println(" 1. ENTER item(s) into inventory");
          System.out.println(" 2. DELETE item(s) from inventory");
          System.out.println(" 3. DISPLAY item(s) in inventory");
          System.out.println();
          System.out.println(" 9. QUIT program");
          System.out.println();
          System.out.println("==================================================");
          System.out.println();
          // Declare and initialize keyboard input stream
          BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
          do
             valid = false;
             try
                System.out.print(" Enter an option > ");
                input = stdin.readLine();
                choice = Integer.parseInt(input);
                System.out.println();
                valid = true;
             catch(NumberFormatException exception)
                System.out.println();
                System.out.println(" Only numbers accepted. Try again.");
          while (!valid);
          while (choice != 1 && choice != 2 && choice != 9)
                System.out.println(" Not a valid option. Try again.");
                System.out.print(" Enter an option > ");
                input = stdin.readLine();
                choice = Integer.parseInt(input);
                System.out.println();
          if (choice == 1)
             // Declare and initialize input file
             FileWriter fileName = new FileWriter(file);
             BufferedWriter bufferedWriter = new BufferedWriter(fileName);
             PrintWriter dataFile = new PrintWriter(bufferedWriter);
             do
                addItem="Y";
                   System.out.print(" Enter item #" + recordNum + " name > ");
                   toolName = stdin.readLine();
                   if (toolName.length() > 15)
                      toolName = toolName.substring(0,15); // Convert to uppercase
                   toolName = toolName.toUpperCase();
                   dataFile.print (toolName + "\t");
                   do
                      valid = false;
                      try
                         // Prompt for item quantity
                         System.out.print(" Enter item #" + recordNum + " quantity > ");
                         itemQty = stdin.readLine();
                         // Parse integer as string
                         qty = Integer.parseInt (itemQty);
                         // Write item quantity to data file
                         dataFile.print(itemQty + "\t");
                         valid=true;
                      catch(NumberFormatException exception)
                         // Throw error for all non-integer input
                         System.out.println();
                         System.out.println(" Only whole numbers please. Try again.");
                   while (!valid);
                   do
                      valid = false;
                      try
                         // Prompt for item cost
                         System.out.print(" Enter item #" + recordNum + " cost (A$) > ");
                         itemCost = stdin.readLine();
                         // Parse float as string
                         price = Double.parseDouble(itemCost);
                         // Write item cost to data file
                         dataFile.println(fmt.format(price));
                         valid = true;
                      catch(NumberFormatException exception)
                         // Throw error for all non-number input (integers
                      // allowed)
                         System.out.println();
                         System.out.println(" Only numbers please. Try again.");
                   while (!valid);
                   // Prompt to add another item
                   System.out.println();
                   System.out.print(" Add another item? Y/N > ");
                   addItem = stdin.readLine();
                   while ((!addItem.equalsIgnoreCase("Y")) && (!addItem.equalsIgnoreCase("N")))
                      // Prompt for valid input if not Y or N
                      System.out.println();
                      System.out.println(" Not a valid option. Try again.");
                      System.out.print(" Add another item? Y/N > ");
                      addItem = stdin.readLine();
                      System.out.println();
                   // Increment record number by 1
                   recordNum++;
                   if (addItem.equalsIgnoreCase("N"))
                      System.out.println();
                      System.out.println(" The output file \"" + file + "\" has been saved.");
                      System.out.println();
                      System.out.println(" Quitting program.");
            while (addItem.equalsIgnoreCase("Y"));
    // Close input file
    dataFile.close();
       if (choice == 2)
       try {
          Read user input (array search string)
          Search array
          If match found, remove entry from array
          Confirm "deletion" and display new array contents
       catch block {
    } // class
    // ==========================================================
    // ListToolDetails class
    // Reads a text file into an array and displays contents as an inventory list
    // ==========================================================
    import java.io.*;
    import java.util.StringTokenizer;
    import java.text.DecimalFormat;
    public class ListToolDetails {
       // Declare variable
       private Tool[] toolArray; // Reference to an array of objects of type Tool
       private int toolCount;
       public static void main(String args[]) throws Exception {
          String line, name, file = "test.txt";
          int units, count = 0, record = 1;
          double price, total = 0;
          DecimalFormat fmt = new DecimalFormat("##0.00");
          final int MAX = 20;
          Tool[] items = new Tool[MAX];
          System.out.println("Inventory List");
          System.out.println();
          System.out.println("REC.#" + "\t" + "ITEM" + "\t" + "QTY" + "\t"
                + "PRICE" + "\t" + "TOTAL");
          System.out.println("\t" + "\t" + "\t" + "\t" + "PRICE");
          System.out.println();
          try {
             // Read a tab-delimited text file of inventory items
             FileReader fr = new FileReader(file);
             BufferedReader inFile = new BufferedReader(fr);
             StringTokenizer tokenizer;
             while ((line = inFile.readLine()) != null) {
                tokenizer = new StringTokenizer(line, "\t");
                name = tokenizer.nextToken();
                try {
                   units = Integer.parseInt(tokenizer.nextToken());
                   price = Double.parseDouble(tokenizer.nextToken());
                   items[count++] = new Tool(name, units, price);
                   total = units * price;
                } catch (NumberFormatException exception) {
                   System.out.println("Error in input. Line ignored:");
                   System.out.println(line);
                System.out.print(" " + count + "\t");
                System.out.print(line + "\t");
                System.out.print(fmt.format(total));
                System.out.println();
             inFile.close();
          } catch (FileNotFoundException exception) {
             System.out.println("The file " + file + " was not found.");
          } catch (IOException exception) {
             System.out.println(exception);
          System.out.println();
       //  Unfinished functionality for displaying "error" message if user tries to
       //  add more than 20 tools to inventory
       public void addTool(Tool maxtools) {
          if (toolCount < toolArray.length) {
             toolArray[toolCount] = maxtools;
             toolCount += 1;
          } else {
             System.out.print("Inventory is full. Cannot add new tools.");
       // This should search inventory by string and remove/overwrite matching
       // entry with null
       public Tool getTool(int index) {
          if (index < toolCount) {
             return toolArray[index];
          } else {
             System.out
                   .println("That tool does not exist at this index location.");
             return null;
    }  // classData file contents:
    TOOL 1     1     1.21
    TOOL 2     8     3.85
    TOOL 3     35     6.92

    Ok, so you have an array of Strings. And if the string you are searching for is in the array, you need to remove it from the array.
    Is that right?
    Can you use an ArrayList<String> instead of a String[ ]?
    To find it, you would just do:
    for (String item : myArray){
       if (item.equals(searchString){
          // remove the element. Not trivial for arrays, very easy for ArrayList
    }Heck, with an arraylist you might be able to do the following:
    arrayList.remove(arrayList.indexOf(searchString));[edit]
    the above assumes you are using 1.5
    uses generics and for each loop
    [edit2]
    and kinda won't work it you have to use an array since you will need the array index to be able to remove it. See the previous post for that, then set the value in that array index to null.
    Message was edited by:
    BaltimoreJohn

  • How to search which image is not in any albums within a project?

    I've created several albums under a project and I would like to see if there's any images that is not being placed in any album yet. I can see there's a 'do not match' option in the search box but I am not sure use it.
    Many thanks.

    What I would do is to give all images in the albums a unique keyword and then set up a filter that;
    1. Match
    2. Keywords > "do not include any of the following" (and then check the keyword given to all the images inside the albums).
    Aperture will then return all the images that does not match that particular keyword.
    To have full control of these all the time, I would set the filter up in a Smart Album always showing me those images not part of other albums.
    Regards
    Paul K

  • How to search for folders using jsp ( or any other way)?

    Hey All,
    It's my first time writing here and i hope i can get some help ... i have created a payroll system using java and jsp techniques and mysql as the database, i want to create a backup page that will let the use to choose the destination folder for the back up, the backup is basically a mysqldump command that will get the destination folder as an argument and create the sql file there. the problem is i couldn't find anyway to let the user browse his local machine and choose the folder , which in returns return the folder path to be used in mysqldump....
    I know that html have <input type=file> but it's used for selecting file not folder...
    can someone come up with a solution for me coz it's urgent and i have to finish the project by the end of this week.,.
    peace!

    Also you can use an OUTPUT clause ( need to modify your DML operations)
    create table itest ( i int identity not null primary key, j int not null unique )
    create table #new ( i int not null, j int not null)
    insert into itest (j)
    output inserted.i, inserted.j into #new
    select o.object_id from sys.objects as o
    select * from #new
    drop table #new, itest;
    go
    The example below shows code that uses OUTPUT clause in UPDATE and DELETE statements to insert rows into an audit table.
    create table t ( i int not null );
    create table t_audit ( old_i int not null, new_i int null );
    insert into t (i) values( 1 );
    insert into t (i) values( 2 );
    update t
       set i  = i + 1
    output deleted.i, inserted.i into t_audit
     where i = 1;
    delete from t
    output deleted.i, NULL into t_audit
     where i = 2;
    select * from t;
    select * from t_audit;
    drop table t, t_audit;
    go
    Best Regards,Uri Dimant SQL Server MVP,
    http://sqlblog.com/blogs/uri_dimant/
    MS SQL optimization: MS SQL Development and Optimization
    MS SQL Consulting:
    Large scale of database and data cleansing
    Remote DBA Services:
    Improves MS SQL Database Performance
    SQL Server Integration Services:
    Business Intelligence

  • How to search a word in a 2d array

    Hi, i'm seeking advice on how to search a word in 2d array. The method will only taking one argument string and will search in row by row, column by column and diagonall down and up. for example, user input String "SEEK" or then the method will have different search pattern to locate the word. Here is the 2d array look like.
    S + K E E S + +
    E + + + + + + K
    E S + + + + + E
    K + E + + + + E
    + + + E + + + S
    + + + + K + + +
    What i've done so far is;
    // this loop is for search SEEK column by column
    public boolean finder(String w){
    for(int j = 0; j < puzzle[0].length; j++) {
    for(int a = 0; a < w.length(); a++) {
    char n = w.charAt(a);
    String r = String.valueOf(n);
    if (puzzle[0][j] != w.charAt(a)) {
    return false
    } else {
    return true;

    read this

  • How to Search and Array for multiple occurrences of a value

    Hi,
    I am trying to search an array of doubles for a number and report the index location(s) of a number. I.e. -allow for repetition. Search and report all index[i] where the number is contained in the array. For example I have
    double[] myInputArray = new double[5];
    double[] myInputArray = { 1, 2, 3, 3, 5 }I know how to search through the array ONCE and return the first occurrence of a number:
    public double GetIndexOf(double Number) {
        for (int i=0; i<myInputArray.length; i++) {
             if (myInputArray[i] == Number){
                  return(i);
        return(-1);
      }How do I expand this code to report multiple index[i] locations if the number reoccurs in the array like the number 3 does in my example array above?

    The way the Java libraries do this type of operation (String.indexOf(), etc) is to specify the starting index along with what you want to find.
    Changing your example slightly (notice how I fixed your naming and more importantly, your return type):
    public int indexOf(double num) {
       return indexOf(num, 0);
    public int indexOf(double num, int fromIndex) {
        for (int i=fromIndex; i<myInputArray.length; i++) {
             if (myInputArray[i] == num){
                  return(i);
        return(-1);
    //usage to get all indices:
    for ( int index = -1; (index = indexOf(num, index+1)) != -1; ) {
       System.out.println(index);
    }Note that due to how floating point numbers work, you may find doing this on doubles (or any other operation that uses == with double arguments) to give you unexpected results.

  • How to search in BI 7.1 query designer for the required key figures & chars

    Hi All,
         Can anyone plz tell me how to search in BI 7.1 query designer for the required key figures & characteristics. I have the query being built on a multiprovider which has many cubes.
    So, i have a huge list of key figures and characteristics. I am not able to search for the required one by the name or the technical name.
    How can we search and pick the required object from the enormous list of the Mutliprovider in the Bex Query Designer??
    Thanks
    Phani

    There is not a search feature available. You have to do an educated guess under what dimension your infoobject could be and select.

  • How to search for files using wildcards * and ?.

    Hi All,
    I've been searching the forum for a couple of hours now and have been unable to find a good example of how to search a directory (Windows OS) for a file using wildcards * and/or ?. Does anyone out there have a good example that they can share with me?
    Thanks

    Hi All,
    First of all I want to thank everyone for taking the time to respond to my question. All of your responses where greatly appreciated.
    I took the example code that was posted by rkconner, thanks rkconner, and modified it to allow me to search for files in a directory that contain * and/or ?. Yes, I said and/or! Meaning that you can use them both in the same file name, example: r??d*.t* would find readme.txt.
    I've posed my complete and thoroughly document code below. I hope it is very helpful to other as I have searched many forums and spent many hours today trying to resolve this problem.
    Enjoy
    * File Name: WildcardSearch.java
    * Date: Jan 9, 2004
    * This class will search all files in a directory using the
    * asterisk (*) and/or question mark (?) as wildcards which may be
    * used together in the same file name.  A File [] is returned containing
    * an array of all files found that match the wildcard specifications.
    * Command line example:
    * c:\>java WildcardSearch c:\windows s??t*.ini
    * New sWild: s.{1}.{1}t.*.ini
    * system.ini
    * Command line break down: Java Program = java WildcardSearch
    *                          Search Directory (arg[0]) = C:\Windows
    *                          Files To Search (arg[1]) = s??t*.ini
    * Note:  Some commands will not work from the command line for arg[1]
    *        such as *.*, however, this will work if you if it is passed
    *        within Java (hard coded)
    * @author kmportner
    import java.io.File;
    import java.io.FilenameFilter;
    public class WildcardSearch
         private static String sWild = "";
          * @param args - arg[0] = directory to search, arg[1] = wildcard name
         public static void main(String[] args)
              String sExtDir = args[0]; // directory to search
              sWild = args[1];   // wild card to use - example: s??t*.ini
              sWild = replaceWildcards(sWild);
              System.out.println("New sWild: " + sWild);
              File fileDir = new File(sExtDir);
              File[] arrFile = fileDir.listFiles(new FilenameFilter()
                   public boolean accept(File dir, String name)
                        return (name.toLowerCase().matches(sWild));
              for (int i = 0; i < arrFile.length; ++i)
                   System.out.println(arrFile.getName());
         }     // end main
         * Checks for * and ? in the wildcard variable and replaces them correct
         * pattern characters.
         * @param wild - Wildcard name containing * and ?
         * @return - String containing modified wildcard name
         private static String replaceWildcards(String wild)
              StringBuffer buffer = new StringBuffer();
              char [] chars = wild.toCharArray();
              for (int i = 0; i < chars.length; ++i)
                   if (chars[i] == '*')
                        buffer.append(".*");
                   else if (chars[i] == '?')
                        buffer.append(".{1}");
                   else
                        buffer.append(chars[i]);
              return buffer.toString();
         }     // end replaceWildcards method
    }     // end class

  • How to store serval char variables into a string variable?

    I have serval char variables, but i don't know how to put them together (without using arrays). I am thinking to store these char variables into a string variable but i don't know how to do it. For example,
    char letter1 = 'a', letter2 = 'b', letter3 = 'c';
    String letters;
    then how can i do to make letters = "abc" from using letter1,2,3?
    I am just a beginner of Java, if anyone can help me, i will appreciate that very much!!!

    String letters=""+leter1+letter2+letter3;is fine and dandy. What it actually compiles to is
    String letters = new StringBuffer().append(letter1).append(letter2).append(letter3).toString();Which ofcourse is much more code to write, but still good to know.
    So do see the API for java.lang.StringBuffer.
    Heikki

  • How do I count occurances in an array

    I have a 2D array of strings and I want to count the number of times a particular word occurs in the array. I have been able to isolate the column that contains the string I want to count but I can't seem to get the code to actually count how many times that word shows up.
    Any ideas? Code attached.
    Tay
    Message Edited by slipstick on 04-22-2008 11:34 AM
    Attachments:
    totalizer.vi ‏21 KB

    Here is a quick example, unfortunately it relies on the user being able to correctly enter the word to search for.
    Cheers
    Message Edited by jmcbee on 04-22-2008 10:43 AM
    CLA, CLED, CTD,CPI, LabVIEW Champion
    Platinum Alliance Partner
    Senior Engineer
    Using LV 2013, 2012
    Don't forget Kudos for Good Answers, and Mark a solution if your problem is solved.
    Attachments:
    Count Word.PNG ‏10 KB

  • Need help :: how to search in nested table/varray data type

    I have the following structure...
    CREATE TYPE lang_con AS VARRAY(15) OF VARCHAR2(50);
    CREATE TYPE rel_con AS VARRAY(15) OF VARCHAR2(50);
    CREATE TABLE Country_n(
    "NAME" VARCHAR2(40 BYTE) CONSTRAINT "COUNTRY_NAME_NOTNULL_N" NOT NULL ENABLE,
    "CODE" CHAR(2 BYTE),
    "CAPITAL" VARCHAR2(40 BYTE),
    "PROVINCE" VARCHAR2(40 BYTE),
    "POPULATION" NUMBER,
    "AREA" NUMBER,
    "LANGUAGES" lang_con,
    "RELIGIONS" rel_con
    after inserting data from 3 different table (country, language, religion) the table looks like this....
    Cyprus cy Nicosia Government controlled area 775927 9250 VARCHAR(English,Greek,Turkish) VARCHAR(Greek Orthodox,Muslim)
    Czech Republic cz Prague Prague 10246178 78866 VARCHAR(Czech) VARCHAR(Orthodox,Protestant,Roman Catholic)
    Germany de Berlin Berlin 82424609 357021 VARCHAR(German) VARCHAR(Muslim,Protestant,Roman Catholic)
    Djibouti dj Jibuti Jibuti 466900 23000 VARCHAR(Afar,Arabic,French,Somali) VARCHAR(Christian,Muslim)
    Denmark dk Copenhagen Frederiksberg Kommune 5413392 43094 VARCHAR(Danish,Faroese,German,Greenlandic) VARCHAR(Evangelical Lutheran,Muslim)
    now I want to get the countries in which german language is being spoken. Actually I need to know how to search in this custom data type of mine....I also need to perform other operation further so really need to know how can I search in this custom data type...
    when I execute the following query....
    select * from country_n cn where cn.languages like '%German%' order by name
    I got the following error....
    Error starting at line 1 in command:
    select * from country_n cn where cn.languages like '%German%' order by name
    Error at Command Line:1 Column:33
    Error report:
    SQL Error: ORA-00932: inconsistent datatypes: expected NUMBER got AHMADM.LANG_CON
    00932. 00000 - "inconsistent datatypes: expected %s got %s"
    *Cause:   
    *Action:
    let me know please...looking forward to your replies....
    Thanks,

    Hi,
    Try this:
    Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0
    Connected as hr
    SQL>
    SQL> SELECT t1.*
      2    FROM country_n t1,
      3         TABLE(t1.languages) t2
      4   WHERE column_value LIKE '%German%';
    NAME                                     CODE CAPITAL                                  PROVINCE                                 POPULATION       AREA LANGUAGES RELIGIONS
    Germany                                  de   Berlin                                   Berlin                                     82424609     357021 <Object>  <Object>
    SQL> Regards,

  • How to search files by wildcard expression

    how to search files by wildcard expression,
    and list all of them?
    for example:
    search file as image*.jpg or ima231*.jpg.
    please give me some code to study.
    thanks in advance.

    following code is a filename filter that support '*' and '?', hope it helps.
    import java.util.*;
    class MyFilenameFilter {
      static public void main(String args[]){
        byte[] in2=new byte[255];
        String filter=null,fileName=null;
        try{
          while(1>0){
            System.out.print("filter (ex: abc*def?.do?):");
            in2=new byte[255];
            System.in.read(in2);
            if((new String(in2)).trim().length()>0) filter=(new String(in2)).trim();  
            System.out.print("filename (ex: abcerdefi.doc):");
            in2=new byte[255];
            System.in.read(in2);
            if((new String(in2)).trim().length()>0) fileName=(new String(in2)).trim();
            System.out.println("filter="+filter+",filename="+fileName+",result="+(chkfn(filter,fileName)? "Matched":"Not Matched"));
        } catch(Exception e){
             e.printStackTrace();
      static boolean chkfn(String chk,String fn)  {//ex:chk=*fg?gh fn=tdiekd.exe, or ex:chk=test.csv fn=k.csv
        boolean rtn=false;
        int x3=0,x4=0,x4Head=0,x4Tail=0;
        if(chk.endsWith(".*") && fn.indexOf(".")==-1) chk=chk.substring(0,chk.length()-2);
        if(chk.endsWith(".") && fn.indexOf(".")==-1) chk=chk.substring(0,chk.length()-1);
        if(fn==null || fn.length()<1) return false;
        if(chk==null) return true;
        if(chk.length()<1 || chk.equals("*") || chk.equals(".") || chk.equals("*.*")) return true;
        int chkLength=chk.length();
        int fnLength=fn.length();
        int newx4Head=-1,newx4Tail=-1;
        int last_asterisk=chk.lastIndexOf("*");
        int first_asterisk=chk.indexOf("*");
        int asteriskCount=0,aindex[]=new int[20],tmp[]=null,index1=-1,cCount=0;
        String cString[]=new String[20];
        chk=chk.toUpperCase();
        fn=fn.toUpperCase();
        char c='0';
        boolean found=false;
        String chkString="";
        //replace each '**' with '*' befroe further action
        while(chk.indexOf("**")!=-1){
          chk=replace(chk,"**","*");
        chkLength=chk.length();
        last_asterisk=chk.lastIndexOf("*");
        first_asterisk=chk.indexOf("*");
        //count the '*' count
        x3=0;
        while(x3<chkLength){
          if(chk.charAt(x3)=='*'){aindex[asteriskCount]=x3; asteriskCount++;}
          x3++;
        //to get the cString[], each string next to '*'
        StringTokenizer st=new StringTokenizer(chk,"*");
        while(st.hasMoreElements()){
          cString[cCount]=st.nextToken(); cCount++;
        //first check the head and the tail
        if(first_asterisk>0){//first_asterisk!=-1 && first_asterisk!=0
           chkString=chk.substring(0,first_asterisk);
           if(chkString.indexOf("?")!=-1){
                 if(fnLength>first_asterisk-1){
                   if(cmp(chkString,fn.substring(0,first_asterisk))==false) return false;
                 } else return false;
           } else if(!fn.startsWith(chkString)) return false;
           x4Head=chkString.length()+1;
        } else if(first_asterisk==0) {
             x4Head=findMatch(cString[0],fn);
             if(x4Head==-1) return false;
        if(last_asterisk!=chkLength-1 && last_asterisk!=-1){
           chkString=chk.substring(last_asterisk+1,chkLength);
           if(chkString.indexOf("?")!=-1){
                 if(fnLength-(chkLength-last_asterisk)+1>-1){
                   if(cmp(chkString,fn.substring(fnLength-(chkLength-last_asterisk)+1,fnLength))==false) return false;
                 } else return false;
           } else if(!fn.endsWith(chkString)) return false;
           x4Tail=fnLength-chkString.length();
        } else if(last_asterisk==chkLength-1) {
             newx4Tail=findMatch(cString[cCount-1],fn.substring(x4Head));
             x4Tail=x4Head+newx4Tail+cString[cCount-1].length();
        if(asteriskCount>1){
          int oldx4Head=x4Head;
          if(last_asterisk!=chkLength-1) {
               if(cString[cCount-2].indexOf("?")==-1){
              x4Tail=fn.substring(x4Head,x4Tail).lastIndexOf(cString[cCount-2]);
              if(x4Tail!=-1) x4Tail=x4Tail+cString[cCount-2].length();
          if(first_asterisk!=0){
            if(cString[1].indexOf("?")==-1){
              x4Head=fn.substring(x4Head).indexOf(cString[1]);
              if(x4Head!=-1) x4Head=oldx4Head+x4Head;
          //before of this, x4head and x4tail are adjusted according to '*', and now it will also adjusted according to '?'
          if(x4Head>-1 && x4Tail>x4Head &&
             chk.substring(aindex[0]+1,aindex[asteriskCount-1]).indexOf("*")==-1 &&
             chk.substring(aindex[0]+1,aindex[asteriskCount-1]).length()!=x4Tail-x4Head &&
             chk.substring(aindex[0]+1,aindex[asteriskCount-1]).indexOf("?")!=-1){
               newx4Head=-1;
               newx4Head=findMatch(chk.substring(aindex[0]+1,aindex[asteriskCount-1]),fn.substring(x4Head,x4Tail));
               if(newx4Head>-1) {
                 x4Head=x4Head+newx4Head;
                 x4Tail=x4Head+aindex[asteriskCount-1]-(aindex[0]+1);
          if(x4Head>-1 && x4Tail>x4Head) return chkfn(chk.substring(aindex[0]+1,aindex[asteriskCount-1]),fn.substring(x4Head,x4Tail));
          else return false;
        } else if(asteriskCount==0){
              if(fnLength==chkLength) return cmp(chk,fn);
                else return false;
        return true;
      static public boolean cmp(String chkString,String fnString){//1.no '*', 2.only for two strings having same length 3.two  strings are uppercase before call this method
        boolean rtn=false;
        int clength=chkString.length(),flength=fnString.length();
        if(clength!=flength) return false;
        for(int i=0;i<clength;i++){
          if(chkString.charAt(i)!='?' && chkString.charAt(i)!=fnString.charAt(i)) return false;
        return true;
      static public int findMatch(String chkString,String fnString){//to find out the correct index postion for the string between two '*'
        int rtn=-1;
        boolean found=false;
        int chkLength=chkString.length();
        int fnLength=fnString.length();
        if(chkLength>fnLength) return -1;
        for(int i=0;i<fnLength-chkLength+1;i++){
          found=true;
          for(int j=0;j<chkLength;j++){
            if(chkString.charAt(j)!='?' && chkString.charAt(j)!=fnString.charAt(j+i)) {found=false; break;}
          if(found) return i;
        return rtn;
      public static String replace(String s, String s1, String s2) {
          if(s!=null && s1!=null && s2!=null){
            int i = 0;
            int j = s.length();
            int k = s1.length();
            int l = s2.length();
            do {
                String s3 = "";
                i = s.indexOf(s1, i);
                if(i == -1)
                    break;
                StringBuffer stringbuffer = new StringBuffer(s.substring(0, i));
                s3 = s.substring(i + k);
                stringbuffer.append(s2).append(s3);
                s = stringbuffer.toString();
                j = s.length();
                i += l;
            } while(i <= j);
          return s;
    }

  • How to search a specific topic in a forum?

    How to search a specific topic in a forum? who can offer me a solution. I'm really appreciate it.

    Enter something in the box next to the words Advanced Search at the upper right and click on the button to display a list of search hits. Then, in the box to the right of the list, click on the word help to bring this Search Help and Tips page up:
    http://search.java.sun.com/search/java/help.jsp

  • How to search whether a seat is available or not?

    Hi,
    I am developing a form in admin module for a call centre where there is a requirement to check whether a seat is available or not? The form contains a search window which the user enters the date in Location,catergory,From_date,to_date,time_from,time_to fields.
    For example if he enters time_from as 06:00and time_from as 14:00 .That means the seat is occupied for 8 hours but is available for the remaining 16 hours. So the search result should show this seat also in the availability list. Every seat hava a unique seat_id.
    another situation is a seat can be allocated between 22:00 and 06:00.That means it is crossing the day.That means that means in a day the seat is allocated from 00:00 - 06:00 and 22:00-23:59. How to search for this?
    The seat can be allocated for any number of hours in a day. It can be 2 hours .3 hours or 4 hours....means there is no particular time slot system.
    Can this be done using a sql query or plsql procedure?
    can anybody help me in this regard
    Thanking you,
    Deekshit

    Hi
    U can use the following query in function.
    SELECT CASE dumm
    WHEN 'X'
    THEN 'OK'
    END
    FROM (SELECT NVL (dummy, 'Y') dumm
    FROM DUAL
    WHERE TO_DATE (new_date_entered in varchar format, 'hh24:mi:ss') BETWEEN TO_DATE
    (date_from in varchar format,
    'hh24:mi:ss'
    AND TO_DATE
    (date_to in varchar format,
    'hh24:mi:ss'
    But need to b careful when the dates r changing. U can check dat by comparing time_from nd time_to values...in case of date change time_from value will be greater than time_to value(assumption==> seat can't be blocked for more than 12 hours). U can actually use the same query by reversing the conditions.. hope this will solve the problem
    Message was edited by:
    Arpit

Maybe you are looking for

  • SharePoint 2013 event receiver error

    I am currently working on a SharePoint online project. I am facing a strange issue. My code generates 6 documents in 6 different document libraries along with other metadata. When I save data to a List, the event receiver fires and creates all the 6

  • Deactivate replication of contact persons from R/3 to CRM

    Hi, i'm replicating customer relationships from ECC6 to CRM2007. All fine, including z-partner functions etc. One thing Im baffled by however is the replication of contact persons. Contact persons will be created in CRM only, without any integration/

  • T61 S L O W display after downgrade to XP

    After half a year of Vista-troubles with my new T61, yesterday I downgraded to XP sp2, using a Cd-set P/N 43E0987EN 44Y0310 44Y0337 44Y0364 44Y0391 44Y0418 44Y0445 After that, the display scrolls V E R R Y slow, horizontally and vertically I also ins

  • Video podcasts suddenly regarded as music in iTunes: how can I fix this?

    Hi everyone, OK I've looked around for some time now, but the answer does not seem to be out there. After a recent iTunes upgrade, all my video podcasts were treated by iTunes as music podcasts. What I mean by that: - TV icon is missing next to the f

  • How to create Blat.exe in essbase

    Hi, I m doing blat file . I have read ehat a blat file and why we use this.I have to create the same blat file and using this i have to create email alert. I have gone through some references but i did not get a proper solution that how to create bla