这是脚本。它反转用户输入的字符串:
#!/bin/bash
read -p "Enter string:" string
len=${#string}
for (( i=$len-1; i>=0; i-- ))
do
# "${string:$i:1}"extract single single character from string.
reverse="$reverse${string:$i:1}"
done
echo "$reverse"
Run Code Online (Sandbox Code Playgroud)
我不明白脚本的以下部分。这是什么?看起来像是某种扩展变量插值。
${string:$i:1}
Run Code Online (Sandbox Code Playgroud) 我有一个字符串,我想在Java中将其拆分为子字符串,原来字符串是这样的
Node( <http://www.mooney.net/geo#wisconsin> )
Run Code Online (Sandbox Code Playgroud)
现在我想通过(#)将它拆分成子串,这是我的代码
String[] split = row.split("#");
String word = split[1].trim().substring(0, (split[1].length() -1));
Run Code Online (Sandbox Code Playgroud)
现在这段代码正在运行,但它给了我
"wisconsin>"
Run Code Online (Sandbox Code Playgroud)
最后的工作我想要的只是工作"威斯康辛州"没有">"这个标志,如果有人有想法请帮助我,提前谢谢.
我已经学习了KMP算法,但未能在字符串问题中实现它.谁能建议我如何使用KMP算法在SPOJ中完成上述问题?链接:http://www.spoj.com/problems/PERIOD/
在最后一个斜杠(包括斜杠)之后有没有更好的方法来删除子串?:
$string = '/me/you/them/him';
echo substr($string, 0, -(strlen(basename($string)) + 1));
Run Code Online (Sandbox Code Playgroud) 我有3个字符串:
String text1 = "abcdefgh";
String text2 = "abcdefghijklmn";
String text3 = "abcdefg";
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情:
text1.substring(int1, int2);
text2.substring(int1, int2);
text3.substring(int1, int2);
Run Code Online (Sandbox Code Playgroud)
返回abc(前3个字符)的问题是字符串长度总是在变化,所以我无论如何都不能使用text1.length.
我有一个指向URL的NSString,如下所示:
https://.../uploads/video/video_file/115/spin_37.mp4
Run Code Online (Sandbox Code Playgroud)
我想从NSString获取我的iOS应用程序中的文件名(在此示例中为spin_37.mp4)
我正在尝试以下方法:
NSUInteger *startIndex = [self.videoURL rangeOfString:@"/" options:NSBackwardsSearch].location+1;
NSUInteger *endIndex = [self.videoURL length] - startIndex;
NSString *fileName = [self.videoURL substringWithRange:(startIndex, endIndex)];
Run Code Online (Sandbox Code Playgroud)
但是我现在遇到了很多与NSUInteger有关的错误
Invalid operands to binary expression ('unsigned long' and 'NSUInteger *' (aka 'unsigned long *'))
Run Code Online (Sandbox Code Playgroud)
谁能解释我做错了什么?
如果过去没有问过这件事我会感到惊讶.我无法找到有用的东西.我有一个字符串数组,我想创建一个新的数组,只包含每个元素的最后4个字符.代码如下.我需要更改什么才能使其正常工作?
for(i=0; i<userScanDataObjects.length;i++){
// if statement used to select every alternative element from the array as th rows are duplicated
if (i%2 !==0){
deviceID_raw.push(userScanDataObjects[i].deviceID.value);
deviceID.push(deviceID_raw[i].substring(5,8));
}
Run Code Online (Sandbox Code Playgroud) 我知道在Java中我可以从String对象中提取子字符串,例如:
String string= "Hello World";
String subString = string.substring(5);
Run Code Online (Sandbox Code Playgroud)
在这个wat中,subString变量将只包含Hello字符串
而且我知道我也可以指定2个索引来选择子字符串,例如:
String subString = string.substring(6, 11);
Run Code Online (Sandbox Code Playgroud)
这将选择世界字符串.
但是,如果给定一个字符串,我想要选择原始字符串表示的子字符串,除了两个初始字符,我该怎么办.
所以我举例说:
String value = "12345"
Run Code Online (Sandbox Code Playgroud)
我的子串必须是345
我该怎么做?
我正在尝试在字符串中获取最后三个字符.使用以下代码,我试图获取fname变量的最后三个字符,但我得到一个"方法长度(int)未定义类型字符串"错误:
String fname = request.getParameter("fname");
String lname = request.getParameter("lname");
String number = request.getParameter("number");
String firstPart = lname.substring(0, 3);
String middlePart = fname.substring(0, fname.Length(3));
Run Code Online (Sandbox Code Playgroud) 问题是找出给定DNA序列中出现不止一次的所有长度为k的序列.我找到了一种使用滚动散列函数的方法,其中对于每个长度为k的序列,计算散列并将其存储在映射中.要检查当前序列是否是重复,我们计算它的散列并检查哈希映射中是否已存在散列.如果是,那么我们在结果中包含此序列,否则将其添加到哈希映射中.
滚动哈希在这里表示,由一个滑动窗口移动到下一个序列的时候,我们使用之前序列的散列,我们删除以前的序列的第一个字符的贡献,并添加新添加的焦炭的贡献方式即新序列的最后一个字符.
Input: AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT
and k=10
Answer: {AAAAACCCCC, CCCCCAAAAA}
Run Code Online (Sandbox Code Playgroud)
这个算法看起来很完美,但我不能去做一个完美的哈希函数,以避免碰撞.如果有人能够在任何情况下解释如何制作完美的哈希值,那将是一个很大的帮助,最重要的是在这种情况下.