A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© disgusting 中级黑马   /  2014-7-9 20:19  /  1608 人查看  /  18 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

取出符串“123-456-789-000”中的数字部分,组成一个新的字符串输出

18 个回复

正序浏览
我来学习学习
回复 使用道具 举报
自制力要求相当之高
回复 使用道具 举报
fantacyleo 发表于 2014-7-9 23:42
10楼兄弟的第二种方案不错。用componentsSeparatedByString:方法。我在他的基础上把最后输出新字符串的方 ...

对我很有帮助,兄弟很给力!
回复 使用道具 举报
OC数组Array可以转换为NSString的,你看下框架那部分
回复 使用道具 举报
写一个循环,里面再写一个条件,如果内容在0-9之间就输出,再写一个拼接字符串的构造方法就行了
回复 使用道具 举报
回复 使用道具 举报
fantacyleo 发表于 2014-7-9 23:42
10楼兄弟的第二种方案不错。用componentsSeparatedByString:方法。我在他的基础上把最后输出新字符串的方 ...

受教了。。。。
回复 使用道具 举报

10楼兄弟的第二种方案不错。用componentsSeparatedByString:方法。我在他的基础上把最后输出新字符串的方式简化了一下。

  1. #import <Foundation/Foundation.h>

  2. int main(int argc, const char * argv[])
  3. {

  4.     @autoreleasepool {
  5.         
  6.         NSString *str = @"123-456-789-000";
  7.         
  8.         
  9.         NSArray *array = [str componentsSeparatedByString:@"-"];
  10.         
  11.         NSString *newStr = [array componentsJoinedByString:@""];
  12.         
  13.         
  14.         NSLog(@"%@",newStr);
  15.     }
  16.     return 0;
  17. }
复制代码
回复 使用道具 举报
  1. 第一种

  2. #import <stdio.h>


  3. int main()
  4. {
  5.     @autoreleasepool {
  6.         
  7.         
  8.     NSString *str = @"123-456-789-000";
  9.    
  10.     NSMutableString *newStr = [NSMutableString string];
  11.    
  12.     for (int i = 0; i<str.length; i++) {
  13.         char s = [str characterAtIndex:i];
  14.         
  15.         if (s != '-') {
  16.             [newStr appendFormat:@"%c",s];
  17.         }
  18.         
  19.     }

  20.     NSLog(@"%@", newStr);
  21.    
  22. }

  23. }
复制代码

  1. 第二种

  2. #import <stdio.h>

  3. int main()
  4. {
  5.     @autoreleasepool {
  6.         
  7.         
  8.         NSString *str = @"123-456-789-000";
  9.         
  10.         
  11.         NSArray *array = [str componentsSeparatedByString:@"-"];
  12.         
  13.         NSMutableString *newStr = [NSMutableString string];
  14.       
  15.         
  16.         for (id obj in array)
  17.         {
  18.             [newStr appendString:obj];
  19.         }
  20.         
  21.       
  22.         NSLog(@"%@",newStr);
  23.         
  24.     }
  25.    
  26. }
复制代码
回复 使用道具 举报
NSString *str5=@"123-456-789-000";      NSString *newStr5=  [str5 stringByReplacingOccurrencesOfString:@"-" withString:@""];//替换法 把-替换成空       NSLog(@"newStr5=%@",newStr5);
回复 使用道具 举报
gyw520gyw 发表于 2014-7-9 22:26
用new String()可以么

这是啥?
回复 使用道具 举报
还真不知道。。。。谁把答案公布了 顺便回复我一下 。。。
回复 使用道具 举报
disgusting 发表于 2014-7-9 20:35
有没有数组直接转换成字符串的方法,不用遍历的、

用new String()可以么
回复 使用道具 举报

我说OC。
回复 使用道具 举报
disgusting 发表于 2014-7-9 20:35
有没有数组直接转换成字符串的方法,不用遍历的、

你说C还是OC?
回复 使用道具 举报

有没有数组直接转换成字符串的方法,不用遍历的、
回复 使用道具 举报
  1. class test {
  2.     public static void main(String[] args) {
  3.         String s = "123-456-789-000";
  4.         String[] parts = s.split("-");
  5.         StringBuilder sb = new StringBuilder();
  6.         for(int i = 0; i < parts.length; i++)
  7.             sb.append(parts[i]);
  8.         System.out.println(sb);
  9.         
  10.     }
  11. }
复制代码

点评

昏!怎么写成Java代码了  发表于 2014-7-9 20:31
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马