Tag: 字符串

如何知道给定字符串是否是Java中另一个字符串的子字符串

嗨,我必须计算一个给定的字符串是否是一个更大的字符串的子字符串。 例如 String str = “Hallo my world”; String substr = “my” 方法“contains”应返回true,因为str包含substr(否则为false)。 我在String类中寻找类似“contains”的东西,但我找不到它。 我想唯一的解决方案是使用模式匹配。 如果是这种情况会更好(最便宜)的方式吗? 谢谢!

找到第一个外括号

我需要找出第一个最外层(不是嵌套)括号索引。 例如 [] output: 0, 1 1[2] output: 1, 3 3[a2[c]]2[abc]3[cd] output: 1, 7 我可以通过很多条件找到它,当前代码: public static void main(String[] args) { String input = “3[a2[c]]2[abc]3[cd]ef”; int first = 0; int second = 0; int count = 0; boolean found = false; for (int index = 0; index < input.length(); index++) { if (input.charAt(index) == '[') […]

如何删除所有前导和尾随标点符号?

我想删除字符串中的所有前导和尾随标点符号。 我怎样才能做到这一点? 基本上,我想在单词之间保留标点符号,我需要删除所有前导和尾随标点符号。 . , @ , _ , & , / , -如果被字母或数字包围,则允许使用 如果前面有字母或数字,则允许使用\’ 我试过了 Pattern p = Pattern.compile(“(^\\p{Punct})|(\\p{Punct}$)”); Matcher m = p.matcher(term); boolean a = m.find(); if(a) term=term.replaceAll(“(^\\p{Punct})”, “”); 但它不起作用!!

空Java字符串的大小

我听到一位同事说如果我在Java类中删除一个String成员,即使String为空,我也会支付“24字节”。 这是准确的吗? Integer,Float,Double是一样的吗? (而不是int,float,double,每个只有4,4和8个字节)。

Java字符串常量池 – 创建的对象数

以下代码将创建多少个字符串对象? String s = “Mahendra” + “Singh” + “Dhoni”; 它会在字符串池中创建4个字符串对象还是会创建更多? 请详细解释。 PS我见过其他例子,他们只处理2个字符串对象。 编辑:我从答案中看到,在上面的情况下,只会创建一个对象。 非常感谢一些非常好的建议。 很抱歉问一个愚蠢的问题,但是你可以在下面的例子中说明将创建多少个对象? String s = “Mahendra”; s = s + “Singh” + “Dhoni”; 第二次编辑:再次抱歉,但我还有一些疑问。 我在评论中看到,在上面的例子中,将创建3个对象“Mahendra”,“SinghDhoni”和“MahendraSinghDhoni”。 我怀疑不应该从左到右计算。 我错过了什么 – 概念明智吗? 请帮忙。 另外,在另一种情况下,如果我扭曲这个问题,对象的数量将如何变化。 我正在详细询问这一点,以便为很多同事清除它。 所有的帮助表示赞赏。 String s = “Singh”; s = “Mahendra” + s + “Dhoni”;

在|上拆分字符串 Java中的(管道)

我有以下文字: ARIYALUR:ARIYALUR|CHENNAI:CHENNAI|COIMBATORE:COIMBATORE|CUDDALORE:CUDDALORE|DINDIGUL:DINDIGUL|ERODE:ERODE|KANCHEEPURAM:KANCHEEPURAM|KANYAKUMARI:KANYAKUMARI|KRISHNAGIRI:KRISHNAGIRI|MADURAI:MADURAI|NAMAKKAL:NAMAKKAL|NILGIRIS:NILGIRIS|PERAMBALUR:PERAMBALUR|PONDICHERRY:PONDICHERRY|SALEM:SALEM|THANJAVUR:THANJAVUR|THENI:THENI|THIRUVALLUR:THIRUVALLUR|THOOTHUKUDI:THOOTHUKUDI|TIRUNELVELI:TIRUNELVELI|VELLORE:VELLORE|VILLUPURAM:VILLUPURAM|VIRUDHUNAGAR:VIRUDHUNAGAR| 我试图进行split(“|”)但我的数组由单个字符而不是每个区组成。

最终String s =“Hello World”与String s =“Hello World”相同吗?

如果一个类被定义为final ,我们声明一个最终类的实例……它会有什么不同吗? 或者在这种情况下是final是多余的? final String s = “Hello World” 与…一样 String s = “Hello World”

Java String Immutability和使用相同的字符串值来创建新字符串

我知道问题的标题不是很清楚,对不起,不知道如何提出。 我有一个非常基本的java实现问题,我想关注应用程序性能,但它也涉及java中的String创建模式。 我理解Java中字符串的不变性概念。 我不确定的是,我在某处读到以下内容不会产生两个不同的String对象: String name = “Sambhav”; String myName= “Sambhav”; 我想知道Java是如何做到的? 它是否实际在程序存储器中查找String值并检查它是否存在,如果它不存在则创建一个新的String对象? 在这种情况下,显然它节省了内存,但存在性能问题。 还可以说我有这样的代码: public void some_method(){ String name = “Sambhav”; System.out.println(name); // or any random stufff } 现在每次调用此函数时,是否有新的String被添加到内存中,或者我是否使用相同的String对象? 我很想知道这一切是如何发生的见解的? 如果我们这样说的话 String name = “Sambhav”; String myName= “Sambhav”; 因为引用不会创建新对象,怎么样 String name = new String(“Sambhav”); String myName= new String(“Sambhav”); Java仍然能够捕获字符串是否相同,只是将myName指向与前一个语句中创建的对象相同的对象?

反向字符串方法

我试图解决以下问题,但如何编写接受String作为参数的方法? 编写一个名为printReverse的方法,该方法接受String作为参数,并以相反的顺序打印字符。 如果将空字符串作为参数传递,则该方法不应生成任何输出。 一定要写一个主要的方法,令人信服地展示你的程序。 不要使用StringBuilder或StringBuffer类的反向方法! 到目前为止,我已经以更简单的方式解决了它: import java.util.Scanner; class ReverseString { public static void main(String args[]) { String original, reverse = “”; Scanner in = new Scanner(System.in); System.out.println(“Enter a string to reverse”); original = in.nextLine(); int length = original.length(); for ( int i = length – 1 ; i >= 0 ; i– ) reverse […]

如何按空格分割字符串但转义引号内的空格(在java中)?

我有一个像这样的字符串: “Video or movie” “parent” “Media or entertainment” “1” “1” “1” “0” “0” 我想用空格拆分它,但引号内的空格应该被忽略。 所以分裂的字符串应该是: “Video or movie” “parent” “Media or entertainment” “1” … 语言是java。