标签: simplification

C#:如何简化这个数字字符串到各种日期部分代码

我有一个字符串,长度可能在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)

c# string parsing simplification

3
推荐指数
1
解决办法
429
查看次数

是否可以将这两个正则表达式连接成一个?

我有以下两个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表达式(上图)将捕获所有.

那么..可以重新修复吗?

注意:我已经尝试使用这个网站**来帮助我调试/调整..但我无法弄明白.

**我与该网站没有任何关系.

regex simplify simplification

3
推荐指数
1
解决办法
1367
查看次数

为什么iPhone示例代码使用了这么多中间变量?

我目前正在研究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

memory-management objective-c simplification ios

3
推荐指数
1
解决办法
241
查看次数

Perl正则表达式简化

我想简化以下声明.

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次?

regex perl repeat simplification

2
推荐指数
2
解决办法
322
查看次数

在 sympy 中禁用自动简化

我想在 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)

我的问题是

  • 给出的例子有什么问题?
  • 我怎样才能保持表达式不被评估/不被简化?

python sympy simplification

2
推荐指数
1
解决办法
1281
查看次数

使regexp更短

我有以下文字:var avarb avar var varb var.我想要做的只是提取"直接" var事件.上面的字符串包含3个.

在玩rubular时我制作了以下Regexp : /\A(var)|\s(var)\s|(var)\z/. 有没有办法简化它,才能var在regexp中只使用一次子串?

ruby regex simplification

0
推荐指数
1
解决办法
65
查看次数

使用php解析器改进和简化css

我想以几种方式改进css语法,例如:

  • 定义变量
    link-color1 = #fff
  • 数学计算
    width: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文件中,因为:

  • PHP看起来复杂而丑陋
    #foo {color:<?php echo $color1; ?>;}
  • Notepad ++完全混淆了.我也是

SASS是离线工作的非常好的解决方案,但我仍然在寻找PHP解决方案,因为:

  • 改进的css文件可供其他开发人员使用,以便他们可以修改和测试它.对于更大的社区,在服务器上使用的php-parser是一种更简单的方法.
  • 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" />

这仅适用于颜色.我需要一个解析器来列出所选的选项.

css php parsing simplification

0
推荐指数
1
解决办法
726
查看次数

Python if/elif简化

这是我的代码的一部分:

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)

我只想弄清楚它是否可以以某种方式简化,但我真的无法想出任何东西.有什么想法吗?

谢谢!

python if-statement simplification

0
推荐指数
1
解决办法
243
查看次数

在Haskell中将多项式转换为标准形式

在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

0
推荐指数
1
解决办法
343
查看次数