Skip to content

Instantly share code, notes, and snippets.

@pppoe
Created June 14, 2011 05:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pppoe/1024387 to your computer and use it in GitHub Desktop.
Save pppoe/1024387 to your computer and use it in GitHub Desktop.
Change Symbols to Fixed Width Symbols
//
// FixWidthText.h
// LayoutImageInText
//
// Created by Haoxiang on 6/14/11.
// Copyright 2011 DEV. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface FixWidthText : NSObject {
// NSArray *originSyms;
// NSArray *fixedWidthSyms;
NSString *originSymStr;
NSString *fixedWidthSymStr;
}
- (NSString *)textWithFixedWidth:(NSString *)originText;
@end
//
// FixWidthText.m
// LayoutImageInText
//
// Created by Haoxiang on 6/14/11.
// Copyright 2011 DEV. All rights reserved.
//
#import "FixWidthText.h"
@implementation FixWidthText
- (id)init {
if (self = [super init])
{
originSymStr = @" !\"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~";
fixedWidthSymStr = @" !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~";
// originSymStr = @" !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
// fixedWidthSymStr = @" !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
// @@hchars = ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~'
// @@fchars = ' !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'
// @@hhash = {' '=>' ','!'=>'!','"'=>'"','#'=>'#','$'=>'$','%'=>'%','&'=>'&','\''=>''','('=>'(',')'=>')','*'=>'*','+'=>'+',','=>',','-'=>'-','.'=>'.','/'=>'/','0'=>'0','1'=>'1','2'=>'2','3'=>'3','4'=>'4','5'=>'5','6'=>'6','7'=>'7','8'=>'8','9'=>'9',':'=>':',';'=>';','<'=>'<','='=>'=','>'=>'>','?'=>'?','@'=>'@','A'=>'A','B'=>'B','C'=>'C','D'=>'D','E'=>'E','F'=>'F','G'=>'G','H'=>'H','I'=>'I','J'=>'J','K'=>'K','L'=>'L','M'=>'M','N'=>'N','O'=>'O','P'=>'P','Q'=>'Q','R'=>'R','S'=>'S','T'=>'T','U'=>'U','V'=>'V','W'=>'W','X'=>'X','Y'=>'Y','Z'=>'Z','['=>'[','\\'=>'\',']'=>']','^'=>'^','_'=>'_','`'=>'`','a'=>'a','b'=>'b','c'=>'c','d'=>'d','e'=>'e','f'=>'f','g'=>'g','h'=>'h','i'=>'i','j'=>'j','k'=>'k','l'=>'l','m'=>'m','n'=>'n','o'=>'o','p'=>'p','q'=>'q','r'=>'r','s'=>'s','t'=>'t','u'=>'u','v'=>'v','w'=>'w','x'=>'x','y'=>'y','z'=>'z','{'=>'{','|'=>'|','}'=>'}','~'=>'~',}
// @@fhash = {' '=>' ','!'=>'!','"'=>'"','#'=>'#','$'=>'$','%'=>'%','&'=>'&','''=>'\'','('=>'(',')'=>')','*'=>'*','+'=>'+',','=>',','-'=>'-','.'=>'.','/'=>'/','0'=>'0','1'=>'1','2'=>'2','3'=>'3','4'=>'4','5'=>'5','6'=>'6','7'=>'7','8'=>'8','9'=>'9',':'=>':',';'=>';','<'=>'<','='=>'=','>'=>'>','?'=>'?','@'=>'@','A'=>'A','B'=>'B','C'=>'C','D'=>'D','E'=>'E','F'=>'F','G'=>'G','H'=>'H','I'=>'I','J'=>'J','K'=>'K','L'=>'L','M'=>'M','N'=>'N','O'=>'O','P'=>'P','Q'=>'Q','R'=>'R','S'=>'S','T'=>'T','U'=>'U','V'=>'V','W'=>'W','X'=>'X','Y'=>'Y','Z'=>'Z','['=>'[','\'=>'\\',']'=>']','^'=>'^','_'=>'_','`'=>'`','a'=>'a','b'=>'b','c'=>'c','d'=>'d','e'=>'e','f'=>'f','g'=>'g','h'=>'h','i'=>'i','j'=>'j','k'=>'k','l'=>'l','m'=>'m','n'=>'n','o'=>'o','p'=>'p','q'=>'q','r'=>'r','s'=>'s','t'=>'t','u'=>'u','v'=>'v','w'=>'w','x'=>'x','y'=>'y','z'=>'z','{'=>'{','|'=>'|','}'=>'}','~'=>'~',}
}
return self;
}
- (void)dealloc {
[originSymStr release];
[fixedWidthSymStr release];
[super dealloc];
}
- (NSString *)textWithFixedWidth:(NSString *)originText {
NSAssert([originSymStr length] == [fixedWidthSymStr length], @"textWithFixedWidth");
NSMutableString *orgText = [NSMutableString stringWithString:originText];
for (int i = 0; i < [originSymStr length]; i++)
{
NSString *orgSym = [originSymStr substringWithRange:NSMakeRange(i, 1)];
NSString *repSym = [fixedWidthSymStr substringWithRange:NSMakeRange(i, 1)];
NSLog(@"\'%@\' -> \'%@\'", orgSym, repSym);
[orgText setString:[orgText stringByReplacingOccurrencesOfString:orgSym
withString:repSym]];
}
NSLog(@"%@", orgText);
return orgText;
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment