天道酬勤,学无止境

string

MATLAB:替代使用 'eval' 来评估字符串(MATLAB: Alternative to using 'eval' in order to evaluate string)

问题 I have a bunch of char arrays within a cell array that actually represents the declaration of MATLAB structs. Something like this: tmp{1} = 'testData.input = [1;2;3;4;5]' tmp{2} = 'testData.output = [2;4;6;8;10]' I need to execute these "commands" and eventually create the respective struct. I am using the eval function within a for-loop and it works. numEntries = numel(tmp); for i = 1 : numEntries eval(tmp{i}); end However, this is painfully slow. I should mention that the real char arrays are very large, effectively containing more than 3,000 numbers. Also, the tmp cell array itself

2021-10-24 04:35:28    分类:技术分享    string   matlab   char   eval

我怎样才能打乱其中有空格的文件名数组?(How can I shuffle an array of filenames that have spaces in them?)

问题 我有一个文件名数组,其中可能包含空格。 我正在使用shuf命令,但它使用文件名中的空格作为分隔符,并在shuf播放时分解文件名。 有没有办法解决这个问题,还是我必须放弃shuf命令? 有什么建议? #!/bin/bash vids=() vids+=("file with spaces.txt") for arr in "${vids[@]}"; do echo -e "$arr\n" done vids=( $(shuf -e "${vids[@]}") ) #shuffle contents of array for arr in "${vids[@]}"; do echo -e "$arr\n" done exit 0 输出: file with spaces.txt file with spaces.txt 回答1 您的方法不起作用的原因是外壳将分词应用于$(...)内的命令的输出,并且无法将换行符视为分隔符。 您可以使用mapfile将行读入数组(在 Bash 4+ 中): mapfile -t vids < <(shuf -e "${vids[@]}") 或者在旧版本的 Bash 中,您可以使用老式的while循环: vids2=() while read -r item; do vids2+=("$item") done < <(shuf -e "${vids[

2021-10-24 04:27:04    分类:技术分享    arrays   string   bash   shuffle

(二进制)转换实际上做了什么,为什么不应该依赖它?(What does (binary) casting actually do and why it should not be relied upon?)

问题 我正在使用PHP 7.2.12 我从 PHP 手册的类型转换部分遇到以下语句: PHP 5.2.1 中添加了(二进制)强制转换和 b 前缀转发支持。 请注意,(二进制)强制转换与(字符串)基本相同,但不应依赖它。 我没有完全理解上面的文字。 有人请解释给我很好的解释。 我研究了同一页 PHP 手册中给出的以下代码示例: <?php $binary = (binary) $string; var_dump($binary); $binary = b"binary string"; var_dump($binary); ?> 输出 : Notice: Undefined variable: string in ..... on line 2 string(0) "" string(13) "binary string" 如果您查看上面的输出,即使在转换为二进制文件后,我也得到了相同的字符串。 那么,二进制转换实际上做了什么转换工作? 为什么不应该依赖二进制转换? 另外,请向我解释可以完成哪些类型的二进制转换? 我的意思是这是合法的。 PHP手册中没有任何地方在这方面有任何解释或理由。 有人请通过指导我正确的方向来帮助我解决这个问题。 回答1 PHP 有针对 PHP 6 的 Big Plans™,其中字符串最终将成为 Unicode 字符串。 为了说明这意味着什么,当前的 PHP

2021-10-24 04:22:46    分类:技术分享    php   string   types   casting   binary

使用 fprintf 和 fscanf 时出错(Error using fprintf and fscanf)

问题 我有一个存档results.csv ,我需要阅读这个存档的第一行并将其打印在output.txt 。 不知何故,它在一切之后打印随机字符,我无法弄清楚出了什么问题。 命令: ac results.csv 第一行: date,home_team,away_team,home_score,away_score,tournament,city,country,neutral output.txt: date,home_team,away_team,home_score,away_score,tournament,city,country,neutral,(!£,(!£,(!£,(!£,(!£,@,£,(!£,(!£ #include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> typedef struct { char *line1; char *line1a; char *line1b; char *team1; char *team2; char *reason; char *city; char *country; char *neutral_field; }data; void open_input(char *argv[], FILE **input) { if((*input

2021-10-24 04:00:41    分类:技术分享    c   string   windows   printf   scanf

SQL Convert Seconds into Day:Hour:Min:Sec

Topic says it all. I'm trying to do some magic, via a function, that turns a second integer into a string "DD:HH:MM:SS". Snip input: 278543 output: "3D 5H 22M 23S " What I'd like to do, more gracefully if possible, is pad the numbers (So that 5M shows as 05M) and right align them so that "3D 5H 22M 23S " is " 3D 5H 22M 23S" instead. edit: Latest cut that seems to work. Would love to have it prettier, but this definitely works as far as I can tell: CREATE FUNCTION DHMS(secondsElapsed INT) RETURNS Char(20) LANGUAGE SQL NO EXTERNAL ACTION DETERMINISTIC BEGIN DECLARE Dy Integer; DECLARE Hr Integer

2021-10-24 03:58:02    分类:问答    datetime   string   db2

C中如何将两个数组字符串变成一个数组字符串(how to make two array strings into one array string in C)

问题 你如何将2个数组字符串变成1个数组字符串,我可以打印出所有52张扑克牌? 我的代码: #include<stdio.h> #include<stdlib.h> #include<time.h> #include<string.h> int main() { char deck[52]; char suits[] = {"Hearts","Diamonds","Clubs","Spades"}; char values[]= {"Ace","Two","Three","Four","Five","Six",\ "Seven","Eight","Nine","Ten","Jack",\ "Queen","King"}; int V, S, d = 0; char string; for ( S= 0; S <4; S++) { for (V =0; V< 13; V++) { string = strcat( values[V], suits[S]); deck[d] = string; printf("%s\n", string);//prints out all the 52 playing cards d++; } } return 0; } 当我执行程序时,出现了问题,要求我调试程序或关闭程序,最后我关闭了程序,没有返回任何内容。 你能给我一个有效的答案吗? 回答1

2021-10-24 03:47:06    分类:技术分享    c   arrays   string

Java 全部替换(Java replaceAll)

问题 我在使用String.replaceAll(String, String)时注意到用$符号替换字符串不起作用。 示例$REPLACEME$在 Linux 系统中不会被替换。 有谁知道这是为什么? 一些代码: String foo = "Some string with $REPLACEME$"; foo = foo.replaceAll("$REPLACEME$", "characters"); System.out.println(foo); 输出: Some string with $REPLACEME$ 回答1 $是一个需要转义的特殊字符: foo = foo.replaceAll("\\$REPLACEME\\$", "characters"); 或者更普遍地使用Pattern.quote它将所有元字符(特殊字符,如$和? )转义为字符串文字: foo = foo.replaceAll(Pattern.quote("$REPLACEME$"), "characters"); 回答2 replaceAll使用正则表达式作为其第一个参数。 $是匹配正则表达式中匹配字符串末尾的锚字符,因此需要进行转义 foo = foo.replaceAll("\\$REPLACEME\\$", "characters"); 回答3 replaceAll 方法使用正则表达式,

2021-10-24 03:30:23    分类:技术分享    java   regex   string   replaceall

Python 类属性的自定义字符串表示形式(Custom string representation of a Python Class property)

问题 我正在定义一个具有多个属性的类,其中大部分是int或float并且对于每个我需要设置特定字符串表示的类,是否有等效的__str__或__repr__属性? 更新:澄清一下,我想为我的int和float值(例如与实际值相关的“022”或“3.27”)提供自定义字符串表示,而不仅仅是任何值的静态字符串。 回答1 您可以创建自己的属性对象并覆盖预期的方法。 下面是一个例子: In [48]: class MyProperty(property): ...: def __init__(self, *args, **kwargs): ...: super() ...: def __str__(self): ...: return "custom_name" ...: In [49]: In [49]: class C: ...: def __init__(self): ...: self._x = None ...: ...: @MyProperty ...: def x(self): ...: """I'm the 'x' property.""" ...: return self._x ...: ...: @x.setter ...: def x(self, value): ...: self._x = value ...: ...: @x.deleter ...: def x

2021-10-24 03:25:32    分类:技术分享    python   string   python-3.x   class

python eval 和字符串索引(python eval and string indexing)

问题 假设我有一个字符串 string = '1234567890' 我想要一段由另一个字符串定义的字符串 slice = '5:8' 这很容易做到 >>>string[5:8] '678' 但是,切片是通过文件传入的,并根据用户输入进行更改。 他们是一种做事的方式,例如 >>>string[eval(slice)] '678' 当我这样做时,我得到 5:8 ^ SyntaxError: invalid syntax 我有一个函数可以解释所有四种情况,我只是想知道它们是否是一种更优雅的方法。 感谢您的回答。 回答1 您收到语法错误,因为5:8本身不是有效的 Python 语句; eval需要正常的 Python 代码,而不仅仅是片段。 如果你真的想使用eval ,你可以说: string = '1234567890' sliceInput = '5:8' result = eval('string[' + sliceInput + ']') 但是,如果您允许用户输入,这根本不安全。 更安全的方法是: string = '1234567890' sliceInput = '5:8' sliceParts = sliceInput.split(':') if len(sliceParts) != 2: # Invalid input -- either no ':' or too

2021-10-24 03:11:17    分类:技术分享    python   string

将字符串拆分为行(Splitting a String into rows)

问题 我有一个表,其中包含由“+”分隔的多个字符串组成的字段。 字符串的每个部分的长度为 2 或 3 个字符。 示例: 'ab+cde+fg' 。 每行有 1 到 3 个部分(所以有些行不需要拆分)。 上面的例子应该返回 3 行: 'ab' 、 'cd'和'fg' 。 我在互联网上搜索了存储过程,但似乎没有一个适合我的特定需求。 我自己没有 SQL 技能来编写这样的程序。 回答1 一般算法是这样工作的: DECLARE input CHAR(100); DECLARE separator_position INTEGER; SET input = 'AA+CCC+D'; CREATE TABLE #output ( part CHAR(10) ); SET separator_position = POSITION('+' IN input); WHILE separator_position > 0 DO INSERT INTO #output (part) VALUES (SUBSTRING(input, 1, separator_position - 1)); SET input = SUBSTRING(input, separator_position + 1, 100); SET separator_position = POSITION('+' IN input)

2021-10-24 02:52:25    分类:技术分享    sql   string   split   advantage-database-server