我有一个字符串,长度可能在1到8个字符之间.我需要把它们转换成一天,一个月和一年.对于缺少的部分,我将使用当前的部分.
我现在的代码有点大而且丑陋,我想知道是否有人对如何做到这一点有更聪明的想法.
我目前的代码如下:
var day = DateTime.Now.Day;
var month = DateTime.Now.Month;
var year = DateTime.Now.Year;
switch (digits.Length)
{
case 1:
case 2:
day = int.Parse(digits.Substring(0));
break;
case 3:
case 4:
day = int.Parse(digits.Substring(0, 2));
month = int.Parse(digits.Substring(2));
break;
case 5:
case 6:
case 7:
case 8:
day = int.Parse(digits.Substring(0, 2));
month = int.Parse(digits.Substring(2, 2));
year = int.Parse(digits.Substring(4));
break;
default:
break;
}
Run Code Online (Sandbox Code Playgroud)
注意:我知道这不是考虑文化,但它不应该:)
我试着这样做:
day = int.Parse(digits.Substring(0, 2));
if(digits.Length > 2)
month = int.Parse(digits.Substring(2, 2));
if(digits.Length > 4)
year = …Run Code Online (Sandbox Code Playgroud) 我有以下两个regular expressions(按顺序btw).
1. ^~/buying/(.*)\?(.*) => foo= group 1 baa= group 2.
2. ^~/buying/(.*) => foo= group 1 baa= nothing/empty/null/baibai
Run Code Online (Sandbox Code Playgroud)
我想要做的是,如果网址有问号,则将其拆分为两组.否则,只需将所有内容扔进第一组.
订单对我来说很重要的原因是,如果我将它们转换为"?" 正则表达式将永远不会被解雇,因为#2表达式(上图)将捕获所有.
那么..可以重新修复吗?
注意:我已经尝试使用这个网站**来帮助我调试/调整..但我无法弄明白.
**我与该网站没有任何关系.
我目前正在研究Apress的"开始iPhone 3开发".他们在示例应用程序中使用的标准类似于以下代码:
- (void)viewDidLoad {
BlueViewController *blueController = [[BlueViewController alloc]
initWithNibName:@"BlueView" bundle:nil];
self.blueViewController = blueController;
[self.view insertSubview:blueController.view atIndex:0];
[blueController release];
}
Run Code Online (Sandbox Code Playgroud)
8.14.11 UPDATE(附加信息)
blueViewController声明如下:
@property (retain, nonatomic) BlueViewController *blueViewController;
Run Code Online (Sandbox Code Playgroud)
每当他们执行一个alloc他们把它放在一些临时变量(这里blueController)然后他们分配它,然后他们释放它.这个临时变量对我来说似乎是多余的.
我将代码简化如下:
- (void)viewDidLoad {
self.blueViewController = [[BlueViewController alloc]
initWithNibName:@"BlueView" bundle:nil];
[self.view insertSubview:blueViewController.view atIndex:0];
}
- (void)dealloc {
[blueViewController release];
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
我的修改后的代码在iPhone模拟器中运行完全相同.现在,我知道规则,如果你分配一些东西,你需要释放它.我在我的dealloc方法中涵盖了这一点.但是直接在ViewDidLoad(alloc被调用的函数)中释放是否有一些优势?或者release在这样的dealloc方法中同样可以吗?
谢谢你的帮助,
-j
我想简化以下声明.
if($_=~/^([0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])/)
Run Code Online (Sandbox Code Playgroud)
有没有另外一种方法可以在不重复[0-9a-fA-F]的情况下编写上述语句n次?
我想在 sympy 中禁用自动简化,例如求解x*y-x我想要的方程x/x而不是1
import sympy
from sympy.abc import x,y,z
expr = x*y-x
sympy.solve(expr,y)
=> 1 # i want unsimplified x/x instead of 1
Run Code Online (Sandbox Code Playgroud)
从 sympy 手册中,我找到了 UnevaluatedExpr 用于此目的,但它返回给定示例的空列表
from sympy import UnevaluatedExpr
expr1 = UnevaluatedExpr(x)*UnevaluatedExpr(y)-UnevaluatedExpr(x)
sympy.solve(expr1,y)
=> []
Run Code Online (Sandbox Code Playgroud)
我的问题是
我有以下文字:var avarb avar var varb var.我想要做的只是提取"直接" var事件.上面的字符串包含3个.
在玩rubular时我制作了以下Regexp : /\A(var)|\s(var)\s|(var)\z/. 有没有办法简化它,才能var在regexp中只使用一次子串?
我想以几种方式改进css语法,例如:
link-color1 = #fffwidth:500-3-2 这看起来很愚蠢,但有变量:width: container - inner - 3px;#foo{background:#ddd;color:#eee;} #bar {@extend: #foo;color:#fff;}-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;取代border-radius:3px;这些只是我的想法的例子,但图书馆可以是不同的
我正在寻找一个解析一个sytax类似于css的文件的php库,并生成一个有效的css文档.
这很重要,我不想将php sytax插入到我的css文件中,因为:
#foo {color:<?php echo $color1; ?>;}SASS是离线工作的非常好的解决方案,但我仍然在寻找PHP解决方案,因为:
这是我写的一个例子:
php解析器 at/css/index.php
用法:
@color1: #1a1a1a;
@color2: #444444;
div#container {background:@color1;}
div#inner {background:@color2;}
Run Code Online (Sandbox Code Playgroud)
HTML链接:
<link rel="stylesheet" type="text/css" href="/css/?main.css" />
这仅适用于颜色.我需要一个解析器来列出所选的选项.
这是我的代码的一部分:
for line in f:
if animals[0].upper() in line:
break
elif animals[1].upper() in line:
break
elif animals[2].upper() in line:
break
elif animals[3].upper() in line:
break
elif animals[4].upper() in line:
break
elif animals[5].upper() in line:
break
elif animals[6].upper() in line:
break
elif animals[7].upper() in line:
break
elif animals[8].upper() in line:
break
elif animals[9].upper() in line:
break
elif animals[10].upper() in line:
break
print(line)
Run Code Online (Sandbox Code Playgroud)
我只想弄清楚它是否可以以某种方式简化,但我真的无法想出任何东西.有什么想法吗?
谢谢!
在Haskell中,我使用的是自定义数据类型Poly a = X | Coef a | Sum (Poly a) (Poly a) | Prod (Poly a) (Poly a) deriving (Show).
因此,多项式(3 + x)^ 2将表示为(Prod (Sum (Coef 3) X) (Sum (Coef 3) X)).
我很难将以这种方式输入的多项式转换为其标准形式的系数列表,我相信它将[9, 6, 1]为(3 + x)^ 2 = 9 + 6x + x ^ 2.
我相信一个可能的解决方案是在我的多项式数据类型上实现一些数学函数,这样我就可以简化输入,但是我没有成功.还有另外一种方法吗?
有人能指出我正确的方向吗?
computer-science haskell functional-programming polynomial-math simplification