我正在尝试使用以下内容,无法解决为什么这个IndexOf方法不起作用的问题。
foreach (string s in regKey.GetSubKeyNames())
{
RegistryKey sub = Registry.LocalMachine.OpenSubKey(string.Format(@"{0}\{1}", _UninstallKey64Bit, s), false);
if (sub.ValueCount > 0)
{
values = sub.GetValueNames();
if (IndexOf(values, "DisplayName") != -1)
{
string name = (sub.GetValue("DisplayName") != null) ? sub.GetValue("DisplayName").ToString() : string.Empty;
if (!string.IsNullOrEmpty(name) && (name.ToLower() == appName.ToLower()))
if (IndexOf(values, "UninstallString") != -1)
{
uninstallValue = (sub.GetValue("UninstallString") != null) ? sub.GetValue("UninstallString").ToString() : string.Empty;
break;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗?
我要做的是在box1中输入随机单词,单击一个按钮,然后在box2中打印所有以"D"开头的单词.因此,如果我输入"Carrots Doors Apples Desks Dogs Carpet"之类的东西,然后点击"Doors Desks Dogs"按钮将打印在box2中.
string s = box1.Text;
int i = s.IndexOf("D");
string e = s.Substring(i);
box2.Text = (e);
Run Code Online (Sandbox Code Playgroud)
当我使用这个^^
它会打印出"门苹果书桌狗地毯",而不仅仅是D'.
注意:这些单词是一个例子,我可以在box1中输入任何内容.
有帮助吗?
我正在解析一些日志文件以进行报告,但String.IndexOf()在几行上得到了奇怪的结果.在这里使用C#.最容易用一些代码解释.
String line = "Jun 29 14:34:19 localhost axis2_http_server: CEF:0|AOPTIX|IRIS|4.1.0.1664.2839|AD214030000301-2610017|114|SDK_ACCESS|4|time=1340980459 comp=10 compinfo=CAPTURE from=8 result=0 user=Admin thread=1305:1962 msg=ation=0.00, faceColor=11.49 HR Face is ICAO compliant, inter-pupil distance=140.00. No match found on LEFT eye (database is empty). LEFT_uid=-1, blacklist=0 No match found on RIGHT eye (database is empty). RIGHT_uid=-1, blacklist=0 CAPTURE successfully completed - SOAP response sent. ";
int ctIndex = line.IndexOf("CaptureTime=");
return ctIndex;
Run Code Online (Sandbox Code Playgroud)
预期:-1
实际:11
这只发生在大约一个日志文件中的2行.
实际实施的方法
private TimeSpan parseDuration(string line)
{
int ctIndex = line.IndexOf("CaptureTime=");
ctIndex = ctIndex + …Run Code Online (Sandbox Code Playgroud) 对于此程序,它要求用户输入其全名.然后通过在名字和名字之间放置的空格中分隔它们来排序名字和姓氏.但是,indexOf()不识别空格,只返回-1.这是为什么?谢谢.
以下是PracticeIt的提示:
编写一个名为processName的方法,该方法接受控制台的扫描程序作为参数,并提示用户输入其全名,然后以相反的顺序打印名称(即姓氏,名字).您可以假设只会给出名字和姓氏.您应该使用扫描仪一次读取整行输入,然后根据需要将其拆分.以下是与用户的示例对话:
请输入您的全名:Sammy Jankis
你的名字是相反的顺序是Jankis,Sammy
import java.util.*;
public class Exercise15 {
public static void main(String[] args) {
Scanner inputScanner = new Scanner(System.in);
processName(inputScanner);
}
public static void processName(Scanner inputScanner) {
System.out.print("Please enter your full name: ");
String fullName = inputScanner.next();
int space = fullName.indexOf(" "); // always return -1 for spaces
int length = fullName.length();
String lastName = fullName.substring(space+1,length+1);
String firstname = fullName.substring(0, space);
System.out.print("Your name in reverse order is " + lastName + ", " + firstname);
} …Run Code Online (Sandbox Code Playgroud) 我正在学习节点.下面的代码给出了不一致的结果,即,如果我给出argv1.indexOf('test'),那么代码无法找到文本,但是,有时候它返回true.为什么会如此.
function process(argv1) {
if(argv1.indexOf('test')) {
console.log('Text is available in array.');
}
}
process(['test','one','help', 'one', 'two']);
Run Code Online (Sandbox Code Playgroud) 昨天我学会了使用流动的代码从文件位置修剪文件名
Dim NEWPATH As String = (inventorApp.ActiveDocument.FullFileName)
NEWPATH = NEWPATH.Substring(0, NEWPATH.fIndexOf("\"c))
Run Code Online (Sandbox Code Playgroud)
这真的很整洁,因为它是一种更可靠/稳定的方式,我以前使用...哈哈今天虽然我想反过来我想在最后一次斜线之前修剪一切我怎么能这样做?
也只是出于好奇,小写字母c为("\"c),即没有它,代码也运行良好?
我试图在第三个斜杠后获取字符串.但我不知道该怎么做.我曾经使用过分裂,但这不是我想要的.
for(String obj2: listKey.getCommonPrefixes()){
Map<String, String> map = new HashMap<String, String>();
String[] id = obj2.split("/");
if (id.length > 3) {
String name = id[3];
map.put("id", name);
map.put("date", "null");
map.put("size", String.valueOf(obj2.length()));
keys.add(map);
}
}
Run Code Online (Sandbox Code Playgroud)
id[3]只给了我id[3]但是我想要在第三次斜线之后的所有东西?我怎样才能做到这一点?
在我的一项任务中,我必须在 Bug 状态的最后一组括号内找到 Bug 的 ID。我列出了一些示例错误状态。
错误状态(字符串)看起来像,
Case 1: Bug A is resolved (XID: X015)
Case 2: Bug B is resolved (ZID: X016)
Case 3: Bug C is resolved (Data issue) (SID: X017)
Run Code Online (Sandbox Code Playgroud)
对于案例 #1 和 #2 ,我进行了编码,找到 ( 和 ) 的第一次出现,并计算括号内的值。
var start = value.IndexOf("(", StringComparison.Ordinal) + 1;
var end = value.IndexOf(")", start, StringComparison.Ordinal);
var BugID = value.Substring(start, end - start);
Run Code Online (Sandbox Code Playgroud)
但是在案例#3 中,有两组括号,第一组包含关于错误的摘要,第二组是实际的错误 ID,我需要提取错误 ID。我必须编写这样的代码,
var start = value.IndexOf(last "("); //index of last (
var end = value.IndexOf(last ")"); …Run Code Online (Sandbox Code Playgroud) 我在一个集合中搜索一个字符串并继续返回-1
这是我的代码如下:
Set<String> myTokens = sharedPreferences.getStringSet("myTokens", new HashSet<String>());
if(String.valueOf(myTokens).contains(auth.getUid())){
int i = Arrays.asList(myTokens).indexOf(auth.getUid());
Log.w(TAG, "Index position of token is: " + String.valueOf(i) + " where the token array is: " + myTokens + "auth.getUid() is: " + auth.getUid());
Run Code Online (Sandbox Code Playgroud)
我的输出:
Index position of token is: -1 where the token array is: [0o75WmAAlTcWUzxgbcleBQSVQSr1, Ztg4GOqeucd6CqNAEokUe7eRHhY2, VatU5fy1U4cgTc3uBBiGX7G7kuT2] auth.getUid() is: Ztg4GOqeucd6CqNAEokUe7eRHhY2
Run Code Online (Sandbox Code Playgroud)
不知道为什么我一直得到-1,任何想法?
人们已经建议auth.getUid()的值不在集合中..但是"Ztg4GOqeucd6CqNAEokUe7eRHhY2"出现在我放在问题底部的集合中
谢谢阅读!
今天有人问了一个关于找出从 I 到数组末尾的数组中选择某些元素的问题,这让我想知道如何使用该filter方法来做到这一点。
有人提供的解决方案之一是使用slice,我知道您可以从一个索引到另一个索引进行选择,但是您将如何实现该filter方法来做同样的事情?
例子
let arr = ['bug', 'cat', 'dog', 'flea', 'bat', 'hat', 'rat'];
let newArr = arr.filter(element => element >= element.indexOf(3));
console.log(newArr);Run Code Online (Sandbox Code Playgroud)
这就是我想出的,它不起作用,但想法是选择索引为 3 或更大的所有字符串并将它们返回到另一个数组中。