Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by AnaRhisT · May 14, 2010 at 09:43 AM · arraytextstringfinddetect

How can I detecting whether certain characters appear in any strings in my array of strings?

the problem is that it doesn't find the char "h" in one of the randomly chosen words (hel,hello1,hello2) which DO contain the char "h", In contrast to that it does finds "l" char, in word hel it finds once, in hello1 or hello2 it finds twice.. so what's the problem?

if(GUI.Button(Rect (100,265,50,50), "H",Circle)){

for (var i : int = 0; i < randomWord.Length; i++) { search = "h"; found = randomWord.IndexOf(search, i); if (found>0) { totalFinds++; i = found;
// search = ""; }

}

print ("Found = "+totalFinds); }

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
2
Best Answer

Answer by duck · May 14, 2010 at 09:46 AM

You problem seems to be that IndexOf returns the position of the character found in the string, and the position of characters is zero-based. That is, if the character is found as the first character of the string, the result will be zero.

Your script checks whether the result is larger than zero, so it won't detect any characters at the start of the string.

The MSDN docs for string.IndexOf state that the function returns -1 if no chars are found, so to fix, simply change your code from:

if (found>0)

to

if (found>=0)

EDIT: Although, on closer inspection, it seems that you don't need to be using IndexOf at all, because you're already stepping through the chars in your word already. Something like this should suffice:

var search = "h";
var totalFinds = 0;
for (var i : int = 0; i < randomWord.Length; i++)
   {
      if (randomWord[i] == search)
      {
         totalFinds++;
      }
   }
   print ("Found = "+totalFinds);
}
Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

No one has followed this question yet.

Related Questions

How do I find a String in an Array? 2 Answers

Creating a String Array from a text file,Creating a StringArray from a TextAsset 1 Answer

Converting Text to a String Array Format 2 Answers

Split string in C#? 1 Answer

Coloring separate text in string array 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges