热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何排除字符串中大写的特定单词?

我是编程的新手,在这里,我需要使用大写的用户输入,其中不包括某些单词

我是编程的新手,在这里,我需要使用大写的用户输入,其中不包括某些单词。

例如,如果输入为
这是一项测试我得到了这是一项测试

但是,我要获取这是一种测试格式

String s = in.nextLine();
StringBuilder sb = new StringBuilder(s.length());
String wordSplit[] = s.trim().toLowerCase().split("\\s");
String[] t = {"is","but","a"};
for(int i=0;i if(wordSplit[i].equals(t))
sb.append(wordSplit[i]).append(" ");
else
sb.append(Character.toUpperCase(wordSplit[i].charAt(0))).append(wordSplit[i].substring(1)).append(" ");
}
System.out.println(sb);
}

这是我到目前为止获得的最接近的单词,但我似乎无法排除将特定单词大写的可能性。


您已经进行了一次迭代。再做一次;为Dim olApp As Outlook.Application
Dim olEmail As Outlook.MailItem
Dim olCal As Outlook.AppointmentItem
Dim olFolder As Outlook.Folder
Dim RequiredAttendee,OptionalAttendee,ResourceAttendee As Outlook.Recipient
Dim rtf() As Byte
Dim objOutlook As Object,objnSpace As Object,objFolder As MAPIFolder
Dim rngTo As Range
Dim rngCC As Range
Dim rngSUB As Range
Dim rngCALloc As Range
Dim rngCALstart As Range
Dim rngCALend As Range
Dim rngBody As Range
Dim myItem As Object
Dim oApp As Object
Dim oNameSpace As Namespace
Dim oFolder As Object
Sub SVN()
'Creates Outlook Calendar Site Visit Notification for one day onsite.'
Set olApp = New Outlook.Application
Set m = olApp.CreateItem(olMailItem)
Set appt = olApp.CreateItem(olAppointmentItem)
With ActiveSheet
Set rngTo = .Range("J3")
Set rngCC = .Range("J4")
Set rngCALloc = .Range("J5")
Set rngCALstart = .Range("J7")
Set rngCALend = .Range("J8")
Set rngSUB = .Range("J14")
End With
MsgBox "Verify Attendees: Customer,Sales,Service."
appt.MeetingStatus = olMeeting
appt.RequiredAttendees = rngTo.Value
appt.OptiOnalAttendees= rngCC.Value
appt.Subject = rngSUB.Value
appt.Location = rngCALloc.Value
appt.Start = rngCALstart.Value
appt.End = rngCALend.Value
appt.AllDayEvent = True
m.BodyFormat = olFormatHTML
m.HTMLBody = Range("J16").Value
m.GetInspector().WordEditor.Range.FormattedText.Copy
appt.GetInspector().WordEditor.Range.FormattedText.Paste
appt.Display
End Sub
中的每个字符串遍历t中的每个字符串:

wordSplit
,

您的问题(由@sleepToken指出)是

if(wordSplit[i].equals(t))

正在检查当前单词是否等于包含您的关键字的数组

相反,您要做的是检查数组是否包含给定的输入单词,例如:

if (Arrays.asList(t).contains(wordSplit[i].toLowerCase()))

请注意,没有“区分大小写” contains()方法,因此在搜索之前将相关单词转换为小写很重要。

,

问题在于您正在将每个单词与整个数组进行比较。 Java不允许这样做,但实际上并没有多大意义。相反,您可以 循环数组中的每个单词并进行比较,但这在代码中有点冗长,而且如果单词数组变大,也不会很快。

相反,我建议从数组中创建一个Set并检查它是否contains这个词:

String[] t = {"is","but","a"};
Set t_set = new HashSet<>(Arrays.asList(t));
...
if (t_set.contains(wordSplit[i]) {
...

,

首先,要检查单词是否包含在数组中。

contains(word) {
for (int i = 0;i if ( word.equals(arr[i])) {
return true;
}
}
return false;
}

然后将您的条件wordSplit[i].equals(t)更改为contains(wordSplit[i]

,

检查单词以排除java.util.ArrayList.contains()方法将是更好的选择。

下面的表达式检查排除列表是否包含单词,如果不包含首字母,则大写:

tlist.contains(x) ? x : (x = x.substring(0,1).toUpperCase() + x.substring(1)))

该表达式还对应于:

if(tlist.contains(x)) { // ?
x = x; // do nothing
} else { // :
x = x.substring(0,1).toUpperCase() + x.substring(1);
}

或:

if(!tlist.contains(x)) {
x = x.substring(0,1).toUpperCase() + x.substring(1);
}

如果被允许使用Java 8:

String s = in.nextLine();
String wordSplit[] = s.trim().toLowerCase().split("\\s");
List tlist = Arrays.asList("is","a");
String result = Stream.of(wordSplit).map(x ->
tlist.contains(x) ? x : (x = x.substring(0,1).toUpperCase() + x.substring(1)))
.collect(Collectors.joining(" "));
System.out.println(result);

输出:

This is a Test

,

在此行if(wordSplit[i].equals(t))

中,您没有与代码中要忽略的每个单词进行比较

您可以执行以下操作:

public class Sample {
public static void main(String[] args) {
String s = "THIS IS A TEST";
String[] ignore = {"is","a"};
List toIgnoreList = Arrays.asList(ignore);
StringBuilder result = new StringBuilder();
for (String s1 : s.split(" ")) {
if(!toIgnoreList.contains(s1.toLowerCase())) {
result.append(s1.substring(0,1).toUpperCase())
.append(s1.substring(1).toLowerCase())
.append(" ");
} else {
result.append(s1.toLowerCase())
.append(" ");
}
}
System.out.println("Result: " + result);
}
}

输出为:

Result: This is a Test

推荐阅读
author-avatar
明恋夏日2
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有