Help with finding digits within string

Hi, I am very close (I believe) to finishing this program. Basically I need to scan the input (string) the user enters. If the input contains 2 digits then I outprint "Valid ID" if not, I outprint "Invalid ID"
please review and if possible help fix it?
Thank you.
import java.util.Scanner;
public class programTest
     public static void main(String[] args)
d     {
     String id;//id entered by user
     Scanner kb=new Scanner(System.in);//scanner utility
          System.out.println("Please enter an ID: ");
          id=kb.next();//assigns user's id to variable id
          if (id.length()>=2 && id.length()<=9)
                  for (int i=0; i<id.length(); i++)
                    if(Character.isDigit(id.charAt(i)))//if id contains 2 digits
                    System.out.println(i);
                    System.out.println("Valid ID");
          }

Finally! After sitting down for a few minutes and watching the show House I thought of a way to do it.
I am almost POSITIVE there is a simpler way to do this, so if you have it please repost the more "efficient" way.
Thank you very much for everyone's help!
import java.util.Scanner;
public class Test
     public static void main(String[] args)
     String id;//id entered by user
     Scanner kb=new Scanner(System.in);//scanner utility
     int digit=0;
          System.out.println("Please enter an ID: ");
          id=kb.next();//assigns user's id to variable id
          if (id.length()>=2 && id.length()<=9)
          {//if
                  for (int i=0; i<id.length(); i++)
                         if(Character.isDigit(id.charAt(i)))               
                         digit++;
                         if (digit!=2)
                         System.out.println("Invalid ID");
          }//if      
          else
               {     System.out.println("Invalid ID");     }
          if (digit==2)
          System.out.println("Valid ID");          
}

Similar Messages

  • BPM xpath issue with last-index-within-string

    Hey all,
    I have a script task in BPM that updates a field by using multiple xpath functions. I have narrowed the issue down to the oraext:last-index-within-string function.
    If I do something like oraext:last-index-within-string('ora/in/ok/d', '/').....I get 9 like expected.
    But if I base it off the request data like so:
    oraext:last-index-within-string(bpmn:getDataObject('Request')/ns:document/ns1:dDocAccount, '/')........when I go to em I have an internal xpath error.
    I'm assuming it has something to do with using bpmn:getDataObject as a parameter. But I'm not sure what. If I use the getDataObject as a parameter in substring like so:
    substring(bpmn:getDataObject('Request')/ns:document/ns1:dDocAccount, 8)....it works as expected.
    What is it about the combination with last-index-within-string that is giving me an issue??
    Thanks
    John

    Got it. Apparently, sometimes with xpath, you have to concatenate the variable with an empty string to change it into a string....sometimes, but not all the time...yay.... I'm guessing the xpath inbuilt functions already know to convert the variable passed in into a string, whereas the oraext functions don't. I could be completely wrong on that though...:-P . Anyway, this works:
    oraext:last-index-within-string(concat(bpmn:getDataObject('Result')/ns:document/ns1:dDocAccount, ''), '/')
    Thanks,
    John

  • HT3209 Purchased DVD in US for Cdn viewing. Digital download will not work in Cda or US? please help with new Digital code that will work

    Purchased DVD in US for Cdn viewing. Digital download will not work in Cda or US? please help with new Digital code that will work

    You will need to contact the movie studio that produced the DVD and ask if they can issue you a new code valid for Canada. Apple cannot help you, and everyone here in these forums is just a fellow user.
    Regards.

  • Help with java digital signing code

    hello people.
    can anybody help me?
    i have find a java code to resolve my problem with sending pay in soap envelope with digital signature and attached certificate. i compiled it with jdk jdk1.6.0_37. and it works.
    i need it to work in built-in jvm in oracle 9i. in oracle 9i jvm release is 1.3.1. Java code does not work there. there is an error
    class import com.sun.org.apache.xerces.internal.impl.dv.util.Base64 not found in import.
    i did not find this class in network.
    can anybody help with rewriting it for jvm 1.3.1?
    thanks in advance.
    code below:
    import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
    import java.io.*;
    import java.security.Key;
    import java.security.KeyStore;
    import java.security.PrivateKey;
    import java.security.Signature;
    import java.security.cert.Certificate;
    public class Sign {
    public static void main(String[] args) throws Exception {
    // TODO code application logic here
    BufferedReader reader = new BufferedReader(new FileReader("c:\\cert.p12"));
    StringBuilder fullText = new StringBuilder();
    String line = reader.readLine();
    while (line != null) {
    fullText.append(line);
    line = reader.readLine();
    KeyStore p12 = KeyStore.getInstance("pkcs12");
    p12.load(new FileInputStream("c:\\cert.p12"), "Hfrtnf$5".toCharArray());
    //????????? ????????? ????, ??? ????? ????? ???????????? alias ? ??????
    //Key key = p12.getKey("my kkb key", "ryba-mech".toCharArray());
    Key key = (Key) p12.getKey("my kkb key", "Hfrtnf$5".toCharArray());
    Certificate userCert = (Certificate) p12.getCertificate("my kkb key");
    String base64Cert = new String(Base64.encode(userCert.getEncoded()));
    //signing
    Signature signer = Signature.getInstance("SHA1withRSA");
    signer.initSign((PrivateKey) key);
    signer.update(fullText.toString().getBytes());
    byte[] digitalSignature = signer.sign();
    String base64sign = new String(Base64.encode(digitalSignature));
    String base64Xml = new String(Base64.encode(fullText.toString().getBytes()));
    System.out.println("<certificate>" + base64Cert+"</certificate>");
    System.out.println("<xmlBody>" + base64Xml+"</xmlBody>");
    System.out.println("<signature>" + base64sign+"</signature>");
    Edited by: user13622283 on 22.01.2013 22:08

    My first search is to see if there is an Apache commons project that provides it. Lo and behold:
    http://commons.apache.org/codec/apidocs/org/apache/commons/codec/binary/Base64.html
    commons-codec.

  • Help with Find / Replace button title tag contents (text)

    Hi there,
    I designed my site with Sitegrinder (Medialab) –
    Currently all the title tags generated for buttons are the same as
    the actual html page name.
    The problem with this is that the tooltip which appears in
    browsers when you hover over the button with the mouse gives you
    the page name. Instead I want to use these tooltips to give the
    user an indication of what the function of the button is.
    An example: A zoom button above an image: Currenty the
    tootlip says “zoom imagename pagename” – Instead
    it should say “click here to zoom”.
    I need help to get the Dreamweaver Find and Replace tool to
    batch replace these tags for me for about a 100 pages.
    Here is an example of the code:
    <body>
    <div id="id1zoomimpastooilweddingbutton"><a
    href="zoomimpastooilwedding.html"
    title="zoomimpastooilwedding"></a></div>
    I only want to replace the text in the title tag - Since the
    text “zoom” appears several times in the body, I
    can’t get the Find tool to pick up and Replace the occurrence
    of “zoom” in the title only…….
    Options I’ve tried:
    Search Current document: Search for: “specific
    tag”: “title”, “containing”:
    “text” = zoom (I’ve tried this with
    “zoomimpastooilwedding” and zoom[^”]* with no
    results
    I’ve also tried: Search for: “specific
    tag”: “body”, “containing”:
    “specific tag” “title”
    “containing”: “text” = zoom
    etc……………..
    I need help with what parameters to enter in order to find
    and replace all the text within the title tag with my own text
    Thanks very much!
    Anton

    You have ~ 100 pages, each of which has images with title
    attributes (not
    tags), all of which BEGIN with the letters "zoom"?
    What do you want to replace that text with? Wouldn't it be
    different for
    each button? Or do you mean that you would do multiple
    sitewide searches,
    one for each button? This illustrates how wrong it is to not
    use DW
    Templates or server-side includes to simplify the management
    of your
    navigation elements....
    Did you ask Medialabs if it would be possible to specify this
    before
    generating the HTML?
    How did you like working with SiteGrinder? It looks like a
    nice product to
    me, although I'm not fond of the final results code-wise....
    Murray --- ICQ 71997575
    Adobe Community Expert
    (If you *MUST* email me, don't LAUGH when you do so!)
    ==================
    http://www.projectseven.com/go
    - DW FAQs, Tutorials & Resources
    http://www.dwfaq.com - DW FAQs,
    Tutorials & Resources
    ==================
    "unison123" <[email protected]> wrote in
    message
    news:[email protected]...
    > Hi there,
    >
    > I designed my site with Sitegrinder (Medialab) ?
    Currently all the title
    > tags
    > generated for buttons are the same as the actual html
    page name.
    >
    > The problem with this is that the tooltip which appears
    in browsers when
    > you
    > hover over the button with the mouse gives you the page
    name. Instead I
    > want to
    > use these tooltips to give the user an indication of
    what the function of
    > the
    > button is.
    >
    > An example: A zoom button above an image: Currenty the
    tootlip says ?zoom
    > imagename pagename? ? Instead it should say ?click here
    to zoom?.
    >
    > I need help to get the Dreamweaver Find and Replace tool
    to batch replace
    > these tags for me for about a 100 pages.
    >
    > Here is an example of the code:
    >
    > <body>
    > <div id="id1zoomimpastooilweddingbutton"><a
    > href="zoomimpastooilwedding.html"
    > title="zoomimpastooilwedding"></a></div>
    >
    > I only want to replace the text in the title tag - Since
    the text ?zoom?
    > appears several times in the body, I can?t get the Find
    tool to pick up
    > and
    > Replace the occurrence of ?zoom? in the title only??.
    >
    > Options I?ve tried:
    >
    > Search Current document: Search for: ?specific tag?:
    ?title?,
    > ?containing?:
    > ?text? = zoom (I?ve tried this with
    ?zoomimpastooilwedding? and zoom[^?]*
    > with
    > no results
    >
    > I?ve also tried: Search for: ?specific tag?: ?body?,
    ?containing?:
    > ?specific
    > tag? ?title? ?containing?: ?text? = zoom etc?????..
    >
    > I need help with what parameters to enter in order to
    find and replace all
    > the
    > text within the title tag with my own text
    >
    > Thanks very much!
    >
    > Anton
    >
    >

  • Need help with finding "my" camera..

    I'm having difficulty finding a camera with specific features that are important for me. I would greatly appreciate any help in finding the brand and model that fits the bill. I've googled and googled, without any luck. Help!  I'm looking for a digital camera with:
    1. GPS
    2. "small" size (gotta fit in my purse, no camera bags for me!)
    3. viewfinder
    4. takes AA batteries
    TIA

    As a GPS and AA enthusiast, I too have been waiting for a similar combination.
    nuff said about GPS models like the NIkon AW100, P510, S9300 similar models using propreitary batteries.
    DSLR with AA powered grips don't fit your portability factor
    have you considered an AA powered data logger?  I use the discontinued Sony GPS-CS1.  Not only does it provide a data file to sync with my camera clock, but it also draws a breadcrumb on where I go so I can look it up on a map afterwards.

  • New Mac user looking for help with Finder, Preview, Keyboard, & Dock

    So about a month ago I switched over from a lifelong Windows user to a brand new MacBook Pro, and while I am adjusting pretty well, there are still some things that I haven't quite figured out.
    First up on the list is Finder! I like my files to be arranged just like how they are in Windows Explorer--folders first alphabetically, then files alphabetically. I've managed to acquire this setting by messing around with the "clean up by" and "arrange by" functions but I don't really know the specific combination. Most of the time these preferences are saved and set as the defaults under "View Options" but every once in a while it resets and I have to tinker around with the settings all over again. Does anyone know of a way to fix this? It's only happened twice so far, but I'd rather not have it happen again. Also, occasionally when I delete an item, there is a blank space left where the icon was instead of all the files following it bumping up a space. Any quick fixes for this bug?
    Next up is Preview. Again, I like the Windows Way and I like to be able to browse between the files in a folder while using Preview/Windows Photo Viewer. I know that there is a way to browse between files if you select the whole folder and stick it in Preview, but is there a way to achieve the same result without having to do that? An app or "extension" of some sort that adds arrows in to browse between photos? I've had no luck finding anything other than the aforementioned option. Is there a good free alternative to Preview that will function similarly with the browse between photos option?
    One of my favorite things about my new Mac is the backlit keyboard function. My old laptop didn't have it and as someone who is online more often at night it is super helpful. But is there a way to turn it off during the day/in bright settings? A way to put it on a timer? In System Preferences I selected the option "Adjust keyboard brightness in low light", which I assumed to mean would have the keyboard NOT very bright when there IS light, but it continues to light up just the same. Any apps or extensions to help with this one?
    And finally, the dock! This question is more about aesthetics than functionality but help is appreciated all the same. Currently, my dock looks like this: http://i42.tinypic.com/35ktxlz.png It is rather opaque and the indicator lights can barely be seen. However, in a lot of tutorial videos I've been watching, many people have docks that look like this: http://i.i.cbsi.com/cnwk.1d/i/tim/2011/07/19/Lion_LaunchPad.png It is a darker shade of gray, the divider is dashed rather than a straight line, and the indicator lights are clearly visible. Does anybody know how to get this look for the dock? I've looked in the dock preferences but there's not really anything in there other than magnification/size/effects.
    That about sums things up! I'm sorry if any of these seem like "silly" questions but they are all things I have been unable to find answers for. Any and all tips, tricks, and help is appreciated! Thanks in advance for all your help!!

    congratulations on coming over from the dark side.
    Seems like you are interested in column view, which would show you the hierarchy of folders and files:  Column View in Mac OS X Mountain Lion - For Dummies Not sure what's going on if your finder settings don't stay put. May be a corrupted preferences file, which is easy to fix, but is perhaps a topic for another discussion.
    What I'd suggest is to have an open mind and try to see what the mac can do, rather than force it to look like your windows machine. I mean, if you just want it to look like windows, then why bother switching? If you give it a little time, you'll start to appreciate the mac way of doing things, and see how it is infinitely more awesome, powerful, creative, intuitive, and better designed (and the software way better written)  than what you left behind. But that's your call.
    There are some threads on this forum with complaints about the backlight. Keyboard backlight settings query...: Apple Support Communities  Evidently it depends on the angle of the screen and the light sensor relative to the light. Some suggest that a SMC reset may help: Intel-based Macs: Resetting the System Management Controller (SMC)  This is not an issue for me, I just adjust the brightness with the keyboard buttons if I want. Real men shift their own gears, drink their coffee black, and adjust their own keyboard brightness. I am not aware of any software to exert more control over this feature but a search of macupdate  Download Apple Mac Software & iPhone Software : MacUpdate may help. I mean, it's up to you what is important. I can waste a lot of time playing around with the GUI and with unnecessary software, or I can just get my work (and play) done.
    You might prefer the no-glass dock, that removes the shelf, and makes the indicator lights like more discrete orbs. You can do this with the terminal. Using the terminal is also, perhaps, a topic for another discussion.I like the 2D dock much better. If you want I'll give you some directions for how to do it. Otherwise, here's a reference: 2D Dock - MacRumors Forums

  • MOVED: need help with finding gpu for win 7

    This topic has been moved to MSI Notebook.
    https://forum-en.msi.com/index.php?topic=128552.0

    Mike,
    I'm not going to be much help with Boot Camp however I can direct you to the Boot Camp forum where there are more people that know how to troubleshoot it and Windoze 7. You can find it at:
    https://discussions.apple.com/community/windows_software/boot_camp
    Roger

  • I need help with finding right stylus pen for lenovo yoga 2 pro!

    I did read other person's post, but I did not find my answer. I am currently using my fingers to write my notes and it drives me nuts! I do have a stylus pen that have huge round fabric tip. It does not write well. I want a stylus pen with pointy end so I can acturally take my notes on OneNote. I writes equations down so it is very hard to write small and neat with my hand. I do know that my laptop is touch sensitive so it only works with rubber or fabric tips! I could not find any stylus pen with those tip that are pointy.... I need help on finding pointy tipped stylus pen that will let me write well. I am ordering ati-glare screen protector because I can see myself on the screen like a mirror... lol Hopefully this will not keep me from finding a pen that works well! Please give me link to the pen, if you can! Thank you for reading!

    ColonelONeill is correct.
    The Yoga 2 Pro does not have a digitizer, so a capacitative stylus, which mimics a fingertip, is what you'd need.
    Regards.
    English Community   Deutsche Community   Comunidad en Español   Русскоязычное Сообщество
    Community Resources: Participation Rules • Images in posts • Search (Advanced) • Private Messaging
    PM requests for individual support are not answered. If a post solves your issue, please mark it so.
    X1C3 Helix X220 X301 X200T T61p T60p Y3P • T520 T420 T510 T400 R400 T61 Y2P Y13
    I am not a Lenovo employee.

  • Search help with new selection within if more than 500 entries

    Dear all,
    I created a new search help and this works fine ... If I compare my search help with a default search help from SAP,  I have 1 small feature that not seems to work ... With the default one, it is possible to make a new selection within the search help by clicking on the arrow down :
    If I look at my search help, I don't have the possibility to make a new selection :
    Does anyone how this can be done ?
    Thanks in advance !
    Greetz,
    Kurt.

    HI,
    Here are the general steps to get you started.
    1. Identify the search help being used (on the ship-to-party field, F1 then Tech Info). I believe you want the collective search help SD_DEBI.
    2. Create your own search help with the fields you want to use with SE11, like 'ZDEBI' as an example.
    3. Append 'ZDEBI' to SD_DEBI. (Goto->Append Search Help).
    4. Clean things up by "Hiding" the old search help. In the 'Included Search Help' tab of the collective search help SD_DEBI, there is a check box that you can tick to hide included search helps.

  • Help with finding someone who actually gives a dam...

    Help with actually getting something done.
    We have had the same telephone number installed at the same address for over 14 years with various services associated including call sign, call minder etc. we also have another line terminating in a different building with Broadband.
    We initially wanted to consolidate the service and order BB provision on the original line and would have liked to have moved across to BT Business but they were unable to port my Call Sign No. so we instead ordered provision of BB and moving of the socket outlet via BT residential.
    I went to great lengths to explain exactly what was needed & why we were not switching to BT Business, it was paramount that both the original number and the call sign number stayed active as both have been extensively advertised in connection with our businesses.
    On Monday 18th the engineer arrived and duly capped off the service in the original building and extended the cabling to the new position and terminated with a new Open Reach faceplate. When he left the premises our phone was working properly and there had been minimum disruption. I understood that at some point in the next 24hrs the BB would be activated on that line - he told me he had already signed the job off as completed.
    On Tuesday the BB was still not active so I called to be told the job wasn't yet complete as tehre was a problem with our call minder service and call sign. I then tested our line and found that it was no longer working. We can hear a dial tone but outgoing calls get a message saying the number called is not recognised and incoming calls go to a standard BT messaging service that we can't access.
    I called back & explained. I asked for a divert but was told that couldn't be done until the job was signed off and that would take 24 hrs. 
    To cut a lot out it's now Friday afternoon so 100 hours have passed. Yesterday I eventualluy got call diverson in place but despite being told it would divert our call sign calls - it does not. So anyone calling that number is just gertting an unobtainablke tone.
    I have been promised call backs that haven't happened and currently I am told an engineer will call as there is a fault shoiwing near or inside the property. But I have to wait until Monday (1 week after initial visit) this has been brought forward from the original date of Weds.
    I have no confidence that this will resolve the issue as it seems there was a known problem on Tuesday that related to the exchange rather than the line.
    I am told that I am on standard care so not eligible for weekend work however I would have been business if BT could have managed the transition. Also the only reason I'm off service is due to work being incorrectly carried out by BT.
    If I make mistakes in my business I pull out all the stops to minimise the the inconvenience. In this case I have spent over 6 hours repeating information and often being talked over by people who are very willing to offer apologies but who don't actually resolve the problem.
    It's impossible to estimate exactly how much this has already cost our businesses but we are definitely talking hundreds and possibly a thousand or two. We can't afford to miss any business ever but particularly a sthings are in the world now, we sell a time related product so when the day has passed we have missed that opportunity. 
    In my opinion if BT think OpenReach need to visit then they should have escalated this to have it resolved before now and definitely not expect me to wait 3 more days as its a weekend. Somebody must have the authority and the desire to put this right but I am unable to communicate with them. 
    I was promised a call back yesterday ay 15:00 but it never came, afetr another 30 minute phone call I was promised a manager would call me back within 1 hr at 7:00 pm last night, still waiting, I called again today and was told I would be called back as soon as the manager was off the telephone - that was 2 hours ago and still no call

    this is a community forum where customers help customers with their problems.
    obviously you need BT to fix your problem and only BT employees on the forum are the mods and can be contacted here 
    contact mods
    can take up to 3 working days for mods to contact you
    you posts do not go to BT
    If you like a post, or want to say thanks for a helpful answer, please click on the Ratings star on the left-hand side of the post.
    If someone answers your question correctly please let other members know by clicking on ’Mark as Accepted Solution’.

  • Help with Find my Iphone app

    Just set up my find my Iphone app and it doesnt have me in the right roads ( im at work and it has me 3 roads away from where I am sitting at my desk) was wondering if its something I did or if I need to do something else.

    Shelly Friedman1 wrote:
    Hi -
    I downloaded Apple's free "Find My iPhone" app and would appreciate help getting it to work. I don't have a paid Mobile Me account, but I understand I can set up a free account to use the app. I signed up for the free MobileMe account in the iPhone 4's settings, and signed into it using my Apple ID. It seemed to work except that, when I went to sign into the app, I got an alert saying that my MobileMe account had not yet been verified, and I should check my Mobile Me email. The problem is, I can't seem to get the the mail screen. When I go to the Mobile Me sign-in page and enter my Apple ID, all I get is an alert saying that no device has been registered. Can anyone provide any help with this? Thanks very much for your help.
    Shelly
    Follow the steps here and you should have no problems setting it up.
    http://www.apple.com/iphone/find-my-iphone-setup/

  • Help with parsing a text string in address book and moving it to 'related person' field

    I am wanting to make a little applescript that will go thru my contacts and find data in the NOTES field and parse it slightly and move it to another field.  (sorry if parsing isn't the right word here)
    The data to be found is a GPS coordinate with this EXACT format:
    <Lat:12.345678><Lon:-12.345678>
    ...the only thing different from this example is the digits, and the number of digits.
    What I want to end up doing is deleting this data from the NOTES field, but leaving any other data, (this part sounds difficult to do to, to me!)
    And moving it to a related person field with the label gps, and the coordinate now reading exactly:
    12.345678,-12.345678
    (FYI, you can copy/paste a coordinate like this very fast into the maps app on iPhone and locate it instantly)
    Thanks for the help on this
    If this is too complicated I can break up the process into steps.  I know how to do some of it, but not sure about the parsing, and then delete just part of the notes field...
    Thanks!

    Hi,
    This script work here, try it :
    tell application "Address Book"
        repeat with thisContact in (get people)
            set tNote to note of thisContact
            if tNote is not missing value and "<Lat:" is in tNote and "<Lon:" is in tNote then
                set {GPS_value, newNote} to my getGPS_coordinate(tNote)
                if newNote is not "" then -- no error
                    set gpsField to (related names of thisContact whose its label = "gps")
                    if gpsField is not {} then
                        set value of (item 1 of gpsField) to GPS_value
                    else -- field "gps" is empty
                        make new related name at end of related names of thisContact with properties {label:"gps", value:GPS_value}
                    end if
                    set note of thisContact to newNote
                end if
            end if
        end repeat
        save
    end tell
    on getGPS_coordinate(this_note)
        set oldTid to text item delimiters
        set {tLat, tLon, newNote} to {"", "", ""}
        try
            set text item delimiters to "<Lat:"
            set tLat to text item 2 of this_note
            set text item delimiters to "<Lon:"
            set tLon to text item 2 of this_note
            set text item delimiters to ">"
            set {tLat, tLon} to {text item 1 of tLat, text item 1 of tLon} -- get values (lat... and long...)
            set text item delimiters to "<Lat:" & tLat & "><Lon:" & tLon & ">"
            set this_note to text items of this_note
            set text item delimiters to " "
            set newNote to this_note as string -- delete GPS coordinate in this note
        end try
        set text item delimiters to oldTid
        return {tLat & "," & tLon, newNote}
    end getGPS_coordinate

  • Find number within string

    Hi guys/gals,
    Im looking to be able to find a number (any number) within a text string, what i ultimately want to do is crop the number out of the string to just be left with a number value, the only problem is the string could be any length and the number doesnt necessarily start at any point from the last character
    I have items on the stage named 'image0', 'textfield2', 'button500' etc, as you can see the prefix before the number isnt a fixed length so I couldnt use substr and set an index, and since the number could be any number i couldnt set the index as a certain value before the end of the string. (ie it might return '500' or 'ld2' or 'ge0' in the examples given before)
    I was looking into how to use IndexOf, but I dont really know how to make it so that it finds any number rather than a specific one
    can anyone help me out?
    Thanks

    One way to do this is by using regular expressions.  In the example below, the str string has anything that is not a number removed.
    var str:String = "button500";
    var regex:RegExp = /\D/g; // matches anything that is not a digit
    var numStr:String = str.replace(regex, "");
    trace(numStr);

  • Need help with finding picture size

    ok here is  my problem i have this sphere and it works great except when you click the thumbnails to display the picture, depending on the size of the picture, the pictures can get pushed to far over, and i understand why. the x and y coord never change. now my idea is to get the size of picture and use that to adjust the x-coord accordingly. my question is. how do i get the picture size? if i can. do the pictures have to be in the fla?
    heres code:
    The radius of the sphere, 'rad'. You can change it if you wish
    especially if you use thumbnails of a different size than our thumbnails.
    var rad:Number=380;
    The position of 'board' that will be defined later. 'board' is the main
    container containing the sphere and the black background
    that reponds to mouse actions.
    var posX:Number=stage.stageWidth/2;
    var posY:Number=stage.stageHeight/2;
    The size of thumbnails. Change the values to reflect the size of your
    images.
    var thumbWidth:Number=70;
    var thumbHeight:Number=53;
    The thumbnail images have been imported to the Library and linked to AS3
    under the names 'Small1', 'Small2',....,'Small46'. The corresponding
    Bitmap objects will be stored in the array 'thumbsArray'.
    var thumbsArray:Array=[];
    The addresses of the images corresponding to the thumbnails are stored
    in 'picsArray'. The images will be loaded at runtime when the user
    clicks on each thumbnail.
    var picsArray:Array=[];
    The Bitmap object corresponding to each thumbnail will be placed
    in a Sprite, holdersArray[i][j], as its child. We have to do this
    to make thumbnails responsive to mouse clicks.
    var holdersArray:Array=[];
    In order to depth-sort images on the sphere, we will need to keep
    track of their midpoints and the position of each midpoint in 3D.
    The midpoints will be stored in 'midsArray'.
    var midsArray:Array=[];
    The only part of our spherical menu that is hard-wired (and a bit harder
    to customize) is the number of thumbnails and their placement on the sphere.
    We have 46 thumbnails placed along 7 horizontal 'circles' on the sphere.
    The 'jLen' vector describes the number of thumbnails on each circle.
    The first 'circle' is the north pole and contains 1 image; the second
    is the circle corresponding to the vertical angle of 30 degrees
    from the negative y axis. That circle contains 6 images. The next one,
    at 60 degree of vertical displacement contains 10 images;
    the one after that, at 90 degrees from the negative y axis, is the equador
    of the sphere and contains 12 images. Past that, we go symmetrically:
    10, 6, and 1 image at the south pole.
    All our arrays are organized to reflect that placement of thumbnails.
    For example, thumbsArray is an array of arrays, thumbsArray[i], where
    i corresponds to the number of each circle. thumbsArray[i][j] is the
    j-th image on the i-th of the seven circles.
    var jLen:Vector.<Number>=new Vector.<Number>();
    jLen=Vector.<Number>([1,6,10,12,10,6,1]);
    We use the almost standard parametrization of a sphere:
    phi is the vertical angle measured from the vertical axis
    pointing upwards (in Flash's coordinate system this is the negative
    y-axis), theta is the horizontal angle measured from the
    horizontal axis pointing away from the screen; that is,
    the negative z-axis. phi changes from 0 to 90 degrees,
    theta from 0 to 360 degrees. For each circle, phi is constant:
    0, 30, 60, 90, 120, 150, 180. 'thetaStep' contains the angular
    distances between thumbnails on each circle. Except
    for the north and the south pole, for each circle
    the angular distance between thumbnails equals to 360 divided
    by the number of thumbnails on the circle.
    var thetaStep:Vector.<Number>=new Vector.<Number>();
    thetaStep=Vector.<Number>([0,60,36,30,36,60,0]);
    //The vertical angle between circles.
    var phiStep:Number=30;
    To make images tangent to the sphere, we need to tilt them
    vertically and horizontally. Horizontal tilt is always
    equal to the theta angle of the midpoint
    of the image and changes along each circle;
    the vertical tilt is based on the values
    of phi and is constant for each circle of thumbnails.
    var phiTilt:Vector.<Number>=new Vector.<Number>();
    phiTilt=Vector.<Number>([-90,-60,-30,0,30,60,90]);
    //The next four variables are related to auto-rotation
    //and rotation by the user.
    var autoOn:Boolean=true;
    var manualOn:Boolean=false;
    var prevX:Number;
    var prevY:Number;
    //The amount of perpective distortion. Higher values give more distortion.
    //Values have to be between 0 and 180 as they correspond to the view angle.
    this.transform.perspectiveProjection.fieldOfView=70;
    //We define and position the container 'board'.
    var board:Sprite=new Sprite();
    this.addChild(board);
    board.x=posX;
    board.y=posY;
    //We call the function that draws the border and the background
    //of 'board'.
    drawBoard();
    //Settings for our dynamic text boxes present on the Stage.
    infoBox.mouseEnabled=false;
    infoBox.wordWrap=true;
    infoBox.text="";
    loadBox.mouseEnabled=false;
    loadBox.wordWrap=true;
    loadBox.text="";
    loadBox.visible=false;
    When the user double-clicks on a thumbnail, the corresponding image
    will be loaded into 'loader' - an instance of the Loader class.
    'loader' is a child of the Sprite, 'photoHolder', which is a child
    of the MainTimeline.
    var photoHolder:Sprite=new Sprite();
    this.addChild(photoHolder);
    photoHolder.x=200;
    photoHolder.y=100;
    var loader:Loader=new Loader();
    photoHolder.addChild(loader);
    photoHolder.visible=false;
    We will literally 'build' a shere of thumbnails by positioning
    them in a Sprite called 'spSphere'. The moment we assign
    any of the 3D properties to 'spSphere', for example a value for the z coordinate,
    spSphere becomes a 3D container. That means we can place elements in it
    in 3D. We will also be able to apply 3D methods to 'spSphere', e.g. rotations.
    When 'spSphere' becomes a 3D display object, it has transfrom.matrix3D property.
    The latter property holds all the information about the current 3D state
    of 'spSphere'.
    var spSphere:Sprite=new Sprite();
    board.addChild(spSphere);
    spSphere.x=0;
    spSphere.y=0;
    //We move 'spSphere' backwards to avoid distortion of the front thumbnails.
    //You can experiment with different values for the z coordinate.
    spSphere.z=rad;
    //We call several functions defined later in the script.
    //They names tell it all.
    setUpPics();
    buildSphere();
    spSphere.rotationY=0;
    spSphere.rotationX=0;
    spSphere.rotationZ=0;
    spSphere.filters=[new GlowFilter(0x666666,1.0,6.0,6.0,2)];
    rotateSphere(0,0,0);
    setUpListeners();
    //The function that draws the black rectangle behind our sphere.
    //You can change the values below to change the size and the color
    //of the background. Those values do not affect the sphere itself.
    function drawBoard():void {
          board.graphics.clear();
          board.graphics.lineStyle(0,0x333333);
          board.graphics.beginFill(0x000000, 0);
          board.graphics.drawRect(-640,-490,1180,1080);
          board.graphics.endFill();
    //We add all the necassary listeners. They are self-explanatory.
    //Note that holdersArray[i][j] is the Sprite that contains the
    //j-th thumbnail on the i-th circle.
    function setUpListeners():void {
              var i:int;
              var j:int;
              this.addEventListener(Event.ENTER_FRAME,autoRotate);
              board.addEventListener(MouseEvent.ROLL_OUT,boardOut);
              board.addEventListener(MouseEvent.MOUSE_MOVE,boardMove);
              board.addEventListener(MouseEvent.MOUSE_DOWN,boardDown);
              board.addEventListener(MouseEvent.MOUSE_UP,boardUp);
              loader.contentLoaderInfo.addEventListener(Event.COMPLETE,doneLoad);
              loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,loadingError);
              photoHolder.addEventListener(MouseEvent.CLICK,holderClicked);
             for(i=0;i<7;i++){
                for(j=0;j<jLen[i];j++){
                    holdersArray[i][j].doubleClickEnabled=true;
                    holdersArray[i][j].addEventListener(MouseEvent.DOUBLE_CLICK,picClicked);
    The functions that are executed in response to events to which we listen.
    The next one runs when a loaded picture is clicked.
    function holderClicked(e:MouseEvent):void {
        board.visible=true;
        photoHolder.visible=false;
        infoBox.text="";
        manualOn=false;
        autoOn=true;
    'picClicked' is executed when any of the thumbnails is double-clicked.
    Note that in the function 'buildSphere' below, we assigned names to
    all holders, holderArray[i][j]. We need those names now to know
    which thumbnail was clicked and which image to load.
    function picClicked(e:MouseEvent):void {
        var targName:String="Double Click Image To View";
        var i:int;
        var j:int;
        targName=e.currentTarget.name;
        i=int(targName.charAt(3));
        j=int(targName.substring(5,targName.length));
        board.visible=false;
        loader.load(new URLRequest(picsArray[i][j]));
        infoBox.text="";
        loadBox.text="Loading...";
        loadBox.visible=true;
    function loadingError(e:IOErrorEvent):void {
        loadBox.text="There has been an error loading the image. The server may be busy. Refresh the page and try again.";
    function doneLoad(e:Event):void {
        infoBox.text="Click the image to close it.";
        photoHolder.visible=true;
        loadBox.text="";
        loadBox.visible=false;
    //Listeners responsible for mouse rotations and auto-rotation.
    function autoRotate(e:Event):void {
             if(autoOn && !manualOn){
                 spSphere.transform.matrix3D.prependRotation(-0.5,Vector3D.Y_AXIS);
                 zSortPics();
    function boardOut(e:MouseEvent):void {
                autoOn=true;
                manualOn=false;
    function boardDown(e:MouseEvent):void {           
                prevX=board.mouseX;
                prevY=board.mouseY;
                autoOn=false;
                manualOn=true;
    function boardUp(e:MouseEvent):void {
                manualOn=false;
         function boardMove(e:MouseEvent):void {
                    var locX:Number=prevX;
                    var locY:Number=prevY;
                    if(!autoOn && manualOn){
                    prevX=board.mouseX;
                    prevY=board.mouseY;
                    rotateSphere(prevY-locY,-(prevX-locX),0);
                    e.updateAfterEvent();
    The function setUpPics populates the arrays thumbsArray and picsArray.
    Note the organization of thumbnails by circles on which they reside:
    thumbsArray[0] - the north pole, thumbsArray[1] thumbnails of the first circle
    down from the north pole, etc. 'picsArray' is organized similarly.
    You can, of course, subsitute your own images, use thumbnails of
    dimensions different from ours. Changing the number of thumbnails and their organization
    would, however, require rewritting the script a bit.
    function setUpPics():void {
        thumbsArray[0]=[new Bitmap(new Small1(70,46))];
        picsArray[0]=["pic1.jpg"];
        thumbsArray[1]=[new Bitmap(new Small2(70,105)),new Bitmap(new Small3(70,105)),new Bitmap(new Small4(70,53)),new Bitmap(new Small5(70,53)),new Bitmap(new Small6(70,53)),new Bitmap(new Small7(70,53))];
        picsArray[1]=["pic2.jpg","pic3.jpg","pic4.jpg","pic5.jpg","pic6.jpg","pic7.jpg"];
        thumbsArray[2]=[new Bitmap(new Small8(70,53)),new Bitmap(new Small9(70,53)),new Bitmap(new Small10(70,53)),new Bitmap(new Small11(70,53)),new Bitmap(new Small12(70,53)),new Bitmap(new Small13(70,53)),new Bitmap(new Small14(70,53)),new Bitmap(new Small15(70,53)),new Bitmap(new Small16(70,53)),new Bitmap(new Small17(70,53))];
        picsArray[2]=["pic8.jpg","pic9.jpg","pic10.jpg","pic11.jpg","pic12.jpg","pic13.jpg","pic1 4.jpg","pic15.jpg","pic16.jpg","pic17.jpg"];
        thumbsArray[3]=[new Bitmap(new Small18(70,53)),new Bitmap(new Small19(70,53)),new Bitmap(new Small20(70,53)),new Bitmap(new Small21(70,53)),new Bitmap(new Small22(70,53)),new Bitmap(new Small23(70,53)),new Bitmap(new Small24(70,53)),new Bitmap(new Small25(70,53)),new Bitmap(new Small26(70,53)),new Bitmap(new Small27(70,53)),new Bitmap(new Small28(70,53)),new Bitmap(new Small29(70,53))];
        picsArray[3]=["pic18.jpg","pic19.jpg","pic20.jpg","pic21.jpg","pic22.jpg","pic23.jpg","pi c24.jpg","pic25.jpg","pic26.jpg","pic27.jpg","pic28.jpg","pic29.jpg"];
        thumbsArray[4]=[new Bitmap(new Small30(70,53)),new Bitmap(new Small31(70,53)),new Bitmap(new Small32(70,53)),new Bitmap(new Small33(70,53)),new Bitmap(new Small34(70,53)),new Bitmap(new Small35(70,53)),new Bitmap(new Small36(70,53)),new Bitmap(new Small37(70,53)),new Bitmap(new Small38(70,53)),new Bitmap(new Small39(70,53))];
        picsArray[4]=["pic30.jpg","pic31.jpg","pic32.jpg","pic33.jpg","pic34.jpg","pic35.jpg","pi c36.jpg","pic37.jpg","pic38.jpg","pic39.jpg"];
        thumbsArray[5]=[new Bitmap(new Small40(70,53)),new Bitmap(new Small41(70,53)),new Bitmap(new Small42(70,53)),new Bitmap(new Small43(70,53)),new Bitmap(new Small44(70,53)),new Bitmap(new Small45(70,53))];
        picsArray[5]=["pic40.jpg","pic41.jpg","pic42.jpg","pic43.jpg","pic44.jpg","pic45.jpg"];
        thumbsArray[6]=[new Bitmap(new Small46(70,53))];
        picsArray[6]=["pic46.jpg"];
    In the next function we actually create a 3D sphere of thumbnails by positioning
    them in 3D within spSphere. Note the center of the sphere is at (0,0,0) of
    spSphere. It might be worth recalling that with our interpretation of
    phi and theta each point P=(x,y,z) on the sphere corresponding to given values
    of phi and theta is given by:
    x = rad * sin(phi) * sin(theta),
    y = -rad * cos(phi),
    z = -rad * sin(phi) * cos(theta).
    Within the function, we populate 'holdersArray' and 'midsArray'. We assign thumbnails
    to holdersArray elements, position holdersArray elements, tilt them, give them names.
    We literally build our sphere.
    function buildSphere():void {
        var i:int;
        var j:int;
        var tStep:Number;
        var pStep:Number=phiStep*Math.PI/180;
        for(i=0;i<7;i++){
            holdersArray[i]=[];
            midsArray[i]=[];
            tStep=thetaStep[i]*Math.PI/180;
            for(j=0;j<jLen[i];j++){
                midsArray[i][j]=new Vector3D(rad*Math.sin(i*pStep)*Math.sin(j*tStep),-rad*Math.cos(i*pStep),-rad*Math.sin(i*p Step)*Math.cos(j*tStep));
                holdersArray[i][j]=new Sprite();
                holdersArray[i][j].name="pic"+String(i)+"_"+String(j);
                holdersArray[i][j].addChild(thumbsArray[i][j]);
                thumbsArray[i][j].x=-thumbWidth/2;
                thumbsArray[i][j].y=-thumbHeight/2;
                spSphere.addChild(holdersArray[i][j]);
                holdersArray[i][j].x=midsArray[i][j].x;
                holdersArray[i][j].y=midsArray[i][j].y;
                holdersArray[i][j].z=midsArray[i][j].z;
                holdersArray[i][j].rotationX=phiTilt[i];
                holdersArray[i][j].rotationY=-j*thetaStep[i];
          zSortPics();
    'zSortPics' depth-sorts all thumbnails corresponding to each view of
    the sphere. It sorts thumbnails by removing them (or more precisely
    their holders, holdersArray[i][j], as children of spSphere and then reassigning
    them based on the z-coordinates of their midpoints.
    function zSortPics():void {
        var distArray:Array=[];
        var dist:Number;
        var i:int;
        var j:int;
        var k:int;
        var curMatrix:Matrix3D;
        var curMid:Vector3D;
        curMatrix=spSphere.transform.matrix3D.clone();
        while(spSphere.numChildren>0){
            spSphere.removeChildAt(0);
            for(i=0;i<7;i++){
                for(j=0;j<jLen[i];j++){
                curMid=curMatrix.deltaTransformVector(midsArray[i][j]);
                dist=curMid.z;
                distArray.push([dist,i,j]);
          distArray.sort(byDist);
          for(k=0;k<distArray.length;k++){
              spSphere.addChild(holdersArray[distArray[k][1]][distArray[k][2]]);
              holdersArray[distArray[k][1]][distArray[k][2]].alpha=Math.max(k/(distArray.length-1),0.5) ;
    function byDist(v:Array,w:Array):Number {
         if (v[0]>w[0]){
            return -1;
          } else if (v[0]<w[0]){
            return 1;
           } else {
            return 0;
    The function that rotates the sphere in response to the user moving the mouse.
    Note we are setting the z coordinate to 0 before rotation. Otherwise,
    the non-zero translation coefficients produce undesirable effects.
    Note also that we do not use this function in 'autoRotate'. That is because
    when the sphere auto-rotates we want it to revolve about is pole-to-pole
    axis. That means prepending rather than appending rotation.
    See the function 'autoRotate' above.
    function rotateSphere(rotx:Number,roty:Number,rotz:Number):void {
          spSphere.z=0;
          spSphere.transform.matrix3D.appendRotation(rotx,Vector3D.X_AXIS);
          spSphere.transform.matrix3D.appendRotation(roty,Vector3D.Y_AXIS);
          spSphere.transform.matrix3D.appendRotation(rotz,Vector3D.Z_AXIS);
          spSphere.z=rad;
          zSortPics();

    I won't be searching thru all that code to try to find something relevant to your post, but if you are using a Loader to load the images, you can get the width and height as soon as the loading is complete using the loader object (loader.width, loader.height).  You just need to wait until loading is complete, so you'll need a listener for that if you don't have one already.

Maybe you are looking for

  • I don't want to restore photos from icloud onto my new iphone

    Hi there, I had an iPhone 4 and just got a new 5c. I backed up my 4 to icloud as i dont't own a laptop. I bought 20GB of storage and everything seemed to work. When I set up new iPhone i selected 'Restore from iCloud Back up' as I need old contacts o

  • Component source

    Hello, I would like to develop a component for use in Flash CS5 and I would like to look at the source code for the existing components in order to understand how they work. However, I am unable to find this source code. On this page: http://help.ado

  • SAP GLM Label Preview Error in Report Management

    Hi GLM Experts, I have a released label in report management screen. When Click on that I can the following error I get this error only if the label is associated with the label stock. If I remove the label stock I am not getting this error. Also if

  • J1i5 error.

    Hi Friends, I tried to update the material documnet in J1I5 t-code,its giving red indicator error.May i know what is the error. i maintained the material in j1id and also in j-2irg1bal.stock also available fo rhte material but its throwing the error

  • Choosing Album Art from the Internet

    Whenever I try to use images from online to use as album art or as wallpapers on my Mac, they come out blurry/pixelated. Is there a special format that I should be using to make my pictures look sharp? I have the MacBook Pro 13". If anybody could hel