И когда я отлаживаю это, логика попадает в предложение .replace.
blockquote>Да, а затем вы отбрасываете возвращаемое значение.
Строки в Java неизменяемы - когда вы вызываете
replace
, он не меняет содержимое строки existing - он возвращает новую строку new с изменениями. Итак, вы хотите:sentence = sentence.replace("and", " ");
Это относится к всем методам в String (
substring
,toLowerCase
и т. Д.). Нет из них изменяют содержимое строки.Обратите внимание, что вам действительно не нужно делать это в состоянии - в конце концов, если предложение t содержат
"and"
, это не вредно для выполнения замены:String sentence = "Define, Measure, Analyze, Design and Verify"; sentence = sentence.replace("and", " ");
Как уже упоминалось в других ответах, вы можете использовать:
Process.Start("notepad somefile.txt");
Однако есть и другой способ.
Вы можете создать экземпляр объекта Process и вызвать метод экземпляра Start:
Process process = new Process();
process.StartInfo.FileName = "notepad.exe";
process.StartInfo.WorkingDirectory = "c:\temp";
process.StartInfo.Arguments = "somefile.txt";
process.Start();
Таким образом вы сможете настроить дополнительные параметры перед началом процесса. Объект Process также позволяет вам получать информацию о процессе во время его выполнения и уведомлять вас (через событие Exited) о завершении процесса.
Дополнение: не забудьте установить для process.EnableRaisingEvents значение «true», если хотите перехватить событие «Exited».
Вот простой пример:
Process.Start("cmd","/C copy c:\\file.txt lpt1");
если вы хотите запустить приложение с помощью cmd, используйте этот код:
string YourApplicationPath = "C:\\Program Files\\App\\MyApp.exe"
ProcessStartInfo processInfo = new ProcessStartInfo();
processInfo.WindowStyle = ProcessWindowStyle.Hidden;
processInfo.FileName = "cmd.exe";
processInfo.WorkingDirectory = Path.GetDirectoryName(YourApplicationPath);
processInfo.Arguments = "/c START " + Path.GetFileName(YourApplicationPath);
Process.Start(processInfo);
Как насчет того, чтобы создать пакетный файл с помощью нужной команды и вызвать его с помощью Process.Start
dir.bat content:
dir
, а затем вызвать:
Process.Start("dir.bat");
Вызовет файл bat и выполнит команду
.Использование Process.Start :
using System.Diagnostics;
class Program
{
static void Main()
{
Process.Start("example.txt");
}
}
Вы спрашиваете, как вызвать командные окна? Если это так, вы можете использовать объект процесса ...
Process.Start("cmd");
Вы можете использовать это для работы cmd в C # :
ProcessStartInfo proStart = new ProcessStartInfo();
Process pro = new Process();
proStart.FileName = "cmd.exe";
proStart.WorkingDirectory = @"D:\...";
string arg = "/c your_argument";
proStart.Arguments = arg;
proStart.WindowStyle = ProcessWindowStyle.Hidden;
pro.StartInfo = pro;
pro.Start();
Не забудьте написать / c перед вашим Аргумент !!
Argh: D не самый быстрый
Process.Start("notepad C:\test.txt");
В дополнение к ответам выше, вы можете использовать метод небольшого расширения:
public static class Extensions
{
public static void Run(this string fileName,
string workingDir=null, params string[] arguments)
{
using (var p = new Process())
{
var args = p.StartInfo;
args.FileName = fileName;
if (workingDir!=null) args.WorkingDirectory = workingDir;
if (arguments != null && arguments.Any())
args.Arguments = string.Join(" ", arguments).Trim();
else if (fileName.ToLowerInvariant() == "explorer")
args.Arguments = args.WorkingDirectory;
p.Start();
}
}
}
и использовать его так:
// open explorer window with given path
"Explorer".Run(path);
// open a shell (remanins open)
"cmd".Run(path, "/K");