php当字符串中的字符位于某个位置时,如何替换它(仅限)?
I var_dump时的结果是:php当字符串中的字符位于某个位置时,如何替换它(仅限)?,php,string,replace,Php,String,Replace,I var_dump时的结果是: string(3) "100" string(3) "001" string(3) "011" 现在有了str_replace,我可以用单词COW来代替1 导致 cow00和0cowcow 但我需要的是: 当1处于位置1时,它需要为cow 当1处于位置2时,需要清管器 当1处于位置3时,它需要是马 这将导致我正在寻找的版本: 母牛0 0匹马 0猪马 解决这个小难题最简单的方法是什么?:) 编辑:由于使用OBJECTIVE-C语言,此答案与主题无关。 对不起,
string(3) "100" string(3) "001" string(3) "011"
现在有了str_replace,我可以用单词COW来代替1
导致
cow00和0cowcow
但我需要的是:
当1处于位置1时,它需要为cow
当1处于位置2时,需要清管器
当1处于位置3时,它需要是马
这将导致我正在寻找的版本:
母牛0
0匹马
0猪马
解决这个小难题最简单的方法是什么?:) 编辑:由于使用OBJECTIVE-C语言,此答案与主题无关。 对不起,我不知道我是怎么到那里的,以为是obj-c。不管怎样,逻辑可能是一样的,但很抱歉 这种方法应该行得通,但我不知道它是否最优。我在这里打的,所以可能会有一些错误
- (NSString *)transformStringIntoPigsAndStuff:(NSString*)baseString{
if (baseString.length >3){
return nil;
}
NSArray *arrSplitString = [baseString componentsSeparatedByString:@""];
int count = 0;
NSMutableString *finalString = [[NSMutableString alloc]init];
for (NSString *str in arrSplitString){
switch (count) {
case 0:
if (str.intValue == 1){
[finalString appendString:@"cow"];
}
break;
case 1:
if (str.intValue == 1){
[finalString appendString:@"pig"];
}
break;
case 2:
if (str.intValue == 1){
[finalString appendString:@"horse"];
}
break;
default:
break;
}
count++;
}
return finalString;
}
就像我在评论中说的,正则表达式不是解决这个问题的最好方法吗
还要注意,这根本不是动态的,只适用于三元组字符串。要适应任何字符串长度都需要做更多的工作。编辑:由于使用OBJECTIVE-C语言,此答案与主题无关。 对不起,我不知道我是怎么到那里的,以为是obj-c。不管怎样,逻辑可能是一样的,但很抱歉 这种方法应该行得通,但我不知道它是否最优。我在这里打的,所以可能会有一些错误
- (NSString *)transformStringIntoPigsAndStuff:(NSString*)baseString{
if (baseString.length >3){
return nil;
}
NSArray *arrSplitString = [baseString componentsSeparatedByString:@""];
int count = 0;
NSMutableString *finalString = [[NSMutableString alloc]init];
for (NSString *str in arrSplitString){
switch (count) {
case 0:
if (str.intValue == 1){
[finalString appendString:@"cow"];
}
break;
case 1:
if (str.intValue == 1){
[finalString appendString:@"pig"];
}
break;
case 2:
if (str.intValue == 1){
[finalString appendString:@"horse"];
}
break;
default:
break;
}
count++;
}
return finalString;
}
就像我在评论中说的,正则表达式不是解决这个问题的最好方法吗
还要注意,这根本不是动态的,只适用于三元组字符串。要适应任何字符串长度都需要做更多的工作。编辑:由于使用OBJECTIVE-C语言,此答案与主题无关。 对不起,我不知道我是怎么到那里的,以为是obj-c。不管怎样,逻辑可能是一样的,但很抱歉 这种方法应该行得通,但我不知道它是否最优。我在这里打的,所以可能会有一些错误
- (NSString *)transformStringIntoPigsAndStuff:(NSString*)baseString{
if (baseString.length >3){
return nil;
}
NSArray *arrSplitString = [baseString componentsSeparatedByString:@""];
int count = 0;
NSMutableString *finalString = [[NSMutableString alloc]init];
for (NSString *str in arrSplitString){
switch (count) {
case 0:
if (str.intValue == 1){
[finalString appendString:@"cow"];
}
break;
case 1:
if (str.intValue == 1){
[finalString appendString:@"pig"];
}
break;
case 2:
if (str.intValue == 1){
[finalString appendString:@"horse"];
}
break;
default:
break;
}
count++;
}
return finalString;
}
就像我在评论中说的,正则表达式不是解决这个问题的最好方法吗
还要注意,这根本不是动态的,只适用于三元组字符串。要适应任何字符串长度都需要做更多的工作。编辑:由于使用OBJECTIVE-C语言,此答案与主题无关。 对不起,我不知道我是怎么到那里的,以为是obj-c。不管怎样,逻辑可能是一样的,但很抱歉 这种方法应该行得通,但我不知道它是否最优。我在这里打的,所以可能会有一些错误
- (NSString *)transformStringIntoPigsAndStuff:(NSString*)baseString{
if (baseString.length >3){
return nil;
}
NSArray *arrSplitString = [baseString componentsSeparatedByString:@""];
int count = 0;
NSMutableString *finalString = [[NSMutableString alloc]init];
for (NSString *str in arrSplitString){
switch (count) {
case 0:
if (str.intValue == 1){
[finalString appendString:@"cow"];
}
break;
case 1:
if (str.intValue == 1){
[finalString appendString:@"pig"];
}
break;
case 2:
if (str.intValue == 1){
[finalString appendString:@"horse"];
}
break;
default:
break;
}
count++;
}
return finalString;
}
就像我在评论中说的,正则表达式不是解决这个问题的最好方法吗
还要注意,这根本不是动态的,只适用于三元组字符串。要适应任何字符串长度,都需要做更多的工作。@Zils PHP中的答案:
<?php
$string = "101";
for($i=0;$i<strlen($string);$i++){
if ($i == 0 && $string[$i] == "1") {
echo "cow";
continue;
}
if ($i == 1 && $string[$i] == "1") {
echo "pig";
continue;
}
if ($i == 2 && $string[$i] == "1") {
echo "horse";
continue;
}
echo $string[$i];
}
@Zils PHP答案:
<?php
$string = "101";
for($i=0;$i<strlen($string);$i++){
if ($i == 0 && $string[$i] == "1") {
echo "cow";
continue;
}
if ($i == 1 && $string[$i] == "1") {
echo "pig";
continue;
}
if ($i == 2 && $string[$i] == "1") {
echo "horse";
continue;
}
echo $string[$i];
}
@Zils PHP答案:
<?php
$string = "101";
for($i=0;$i<strlen($string);$i++){
if ($i == 0 && $string[$i] == "1") {
echo "cow";
continue;
}
if ($i == 1 && $string[$i] == "1") {
echo "pig";
continue;
}
if ($i == 2 && $string[$i] == "1") {
echo "horse";
continue;
}
echo $string[$i];
}
@Zils PHP答案:
<?php
$string = "101";
for($i=0;$i<strlen($string);$i++){
if ($i == 0 && $string[$i] == "1") {
echo "cow";
continue;
}
if ($i == 1 && $string[$i] == "1") {
echo "pig";
continue;
}
if ($i == 2 && $string[$i] == "1") {
echo "horse";
continue;
}
echo $string[$i];
}
谢谢,这很有效,但是。。。
它只适用于1小时。我需要这一切
[已编辑]
这是我的解决方案(包括一个更好的例子,油门断开)
foreach($result作为$part){
$string=$part;
对于($i=0;$i谢谢,这很有效,但是。。。
它只适用于1。我需要它的所有
[已编辑]
这是我的解决方案(包括一个更好的例子,油门断开)
foreach($result作为$part){
$string=$part;
对于($i=0;$i谢谢,这很有效,但是。。。
它只适用于1。我需要它的所有
[已编辑]
这是我的解决方案(包括一个更好的例子,油门断开)
foreach($result作为$part){
$string=$part;
对于($i=0;$i谢谢,这很有效,但是。。。
它只适用于1。我需要它的所有
[已编辑]
这是我的解决方案(包括一个更好的例子,油门断开)
foreach($result作为$part){
$string=$part;
对于($i=0;$iI对正则表达式是新手,但这种情况不是专为正则表达式设计的吗?否则,字符串到数组,逐个检查元素,将100%工作,易于实现,但可能不是最有效的。你说的是PHP吗?该死的,我完全离题了,我用obj-C回答。今天不是我的日子……在PHP中,你也可以字符串上的p作为字符数组for($i=0;$iI对正则表达式是新手,但这种情况不是专为正则表达式设计的吗?否则,字符串到数组,逐个检查元素,将100%工作,易于实现,但可能不是最有效的。你说的是PHP吗?该死的,我完全离题了,我用obj-C回答。今天不是我的日子……在PHP中,你也可以字符串上的p作为字符数组for($i=0;$iI对正则表达式是新手,但这种情况不是专为正则表达式设计的吗?否则,字符串到数组,逐个检查元素,将100%工作,易于实现,但可能不是最有效的。你说的是PHP吗?该死的,我完全离题了,我用obj-C回答。今天不是我的日子……在PHP中,你也可以字符串上的p作为字符数组for($i=0;$iI对正则表达式是新手,但这种情况不是专为正则表达式设计的吗?否则,字符串到数组,逐个检查元素,将100%工作,易于实现,但可能不是最有效的。你说的是PHP吗?该死的,我完全离题了,我用obj-C回答。今天不是我的日子……在PHP中,你也可以字符串上的p作为($i=0;$i)的字符数组